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
'Algorithm > Programmers' 카테고리의 다른 글
[2020 카카오 기출] 기둥과 보 설치(JAVA) (0) | 2021.07.01 |
---|---|
[2020 카카오 기출] 블록 이동하기(JAVA) (0) | 2021.06.20 |
[2020 카카오 기출] 가사 검색(JAVA) (0) | 2021.05.24 |
[2018 카카오 기출] 추석 트래픽(JAVA) (0) | 2021.05.14 |
[2018 카카오 기출] 셔틀버스(JAVA) (0) | 2021.05.12 |