본문 바로가기
Algorithm/Programmers

[2021 카카오 기출] 카드 짝 맞추기(JAVA)

by BAYABA 2021. 6. 20.

https://programmers.co.kr/learn/courses/30/lessons/72415


풀이는 바킹독님의 해설을 참고했습니다. (https://www.youtube.com/watch?v=FX9n1PFv2K4&t=2851s)

 

풀이는 크게 3가지 파트로 나눠집니다.

 

1. 6개 종류의 카드 중 어떤 카드부터 짝을 맞출 것인지 - 시간복잡도: O(6!)

2. 한 종류의 카드는 2장이 있는데, 두 장 중 어떤 카드부터 탐색할 것인지 - 시간복잡도: O(2^6)

3. 실제 탐색하는 BFS - 시간복잡도: (6 * O(4^2))

 

위 3개의 조합으로 O(1*2*3)을 한 게 브루트포스로 해결한 시간복잡도입니다.

N제한이 크지않으므로 C++, JAVA의 경우는 브루트포스로 해결 가능합니다.


코드: https://github.com/cotchan/algorithm/blob/main/java/PROGRAMMERS/PG72415.java