2019 KAKAO BLIND RECRUITMENT: 후보키 (with Swift)
풀면서 이게 맞게 풀고 있는 것인가 라는 생각이 많이 들었던 문제이다. 입력의 크기가 매우 작은 만큼, 시간이 오래 걸리는 로직이더라도 시간초과 없이 잘 통과한 것 같다. 로직은 아래와 같다. column의 수가 n개일 때, 우리가 후보키인지 확인할 수 있는 col 조합은 총 2^n가지이다. 이들 전부를 dfs()를 통해 구하고, 각 case마다 check()함수를 통해 해당 조합이 후보키가 될 수 있는지 체크한다. 후보키가 될 수 있는지 체크하는 방식은 ( 1,3,7)번 column에 대해서 확인하는 것이라면, relation의 모든 행에 대해 1,3,7번 column만 걸러내 [(relation[0][1], relation[0][3], relation[0][7]), relation[1][1], rel..
Swift알고리즘
2023. 9. 16. 18:12