알고리즘문제풀이/프로그래머스
2021 KAKAO BLIND RECRUITMENT [카드 짝 맞추기] [C++]
쉽지않네
2021. 2. 23. 19:31
programmers.co.kr/learn/courses/30/lessons/72415
코딩테스트 연습 - 카드 짝 맞추기
[[1,0,0,3],[2,0,0,0],[0,0,0,2],[3,0,1,0]] 1 0 14 [[3,0,0,2],[0,0,1,0],[0,1,0,0],[2,0,0,3]] 0 1 16
programmers.co.kr
문제 요약
1.현재 카드가 놓인 상태를 나타내는 2차원 배열 board와 커서의 처음 위치 r, c가 매개변수로 주어질 때, 모든 카드를 제거하기 위한 키 조작 횟수의 최솟값을 return 하도록 solution 함수를 완성해 주세요.
나의 풀이
카드가 최대 6종류이고 하나의 카드종류에 각각 2개씩 있으므로 제거할때의 순서의 가짓수는
\({6!} \times 2^6\) 이 된다.
BFS를 돌리면서 해당 순서에 대해서 키 조작 횟수를 계산하여 최소 키 조작횟수를 update해주면 된다.
코드