[완전탐색] 외벽 점검 - 2020 KAKAO BLIND RECRUITMENT
기존에 필자가 풀이한 방법은 통과는 했지만 실행 시간이 꽤 길어서 다른 좋은 풀이 방법을 찾아보았다. 참고한 풀이 방법의 출처는 맨 아래에 표시하겠다. 해결 방법 필자가 설명할 풀이 방법은 완전 탐색을 사용한 방법이다. 이런 식으로 원을 탐색하는 문제는 2n 크기의 1차원 배열로 풀어서 생각하면 쉽다. 늘어난 부분은 원의 위치 0을 기준으로 2바퀴 째 도는 부분인 것이다. 즉, weak 배열의 크기를 2배로 늘리고 늘어난 부분은 기존의 원소에 n을 더해서 추가하면 된다. ※ 예) n=12이고 weak=[1, 5, 6, 10]인 경우에는 weak=[1, 5, 6, 10, 13, 17, 18, 22]로 만든다. 이렇게 되면 기존의 weak의 크기를 w라고 했을 때, [0, w) 범위의 정수인 임의의 i에 대..
2022. 9. 8.
[완전탐색] 후보키 - 2019 KAKAO BLIND RECRUITMENT
해결 방법 i) 테이블의 모든 속성에 대한 조합(Combination)을 구한다. - 예를 들어, 테이블의 속성 번호를 0, 1, 2, 3으로 매겼을 때, 모든 속성에 대한 조합은 {0, 1, 2, 3, {0, 1}, {0, 2}, {0, 3}, {1, 2}, {1, 3}, {2, 3}, {0, 1, 2}, {0, 1, 3}, {0, 2, 3}, {1, 2, 3}, {1, 2, 3, 4}}가 된다. - 조합을 C++ 코드로 구현하는 방법은 https://kimcoder.tistory.com/118?category=888042 에 설명했으니 이를 참고하면 된다. ii) 모든 속성 조합에 대하여 유일성을 검증한다. - 각각의 속성 조합들에 대한 중복 여부를 검증한다. - 예를 들어, 필자는 ["이름", "전..
2022. 6. 24.