문제: https://programmers.co.kr/learn/courses/30/lessons/42890
시뮬레이션 문제입니다.
1. 컴비네이션을 통해 1개 ~ 컬럼의 사이즈만큼 뽑는 경우의 수를 생성합니다.
2. 하나의 경우의 수 == 후보키가 되고 이 후보키를 통해 모든 튜플을 식별할 수 있는지 확인합니다.
3. 2번을 만족한다면 이 후보키가 슈퍼키인지 유무를 확인합니다.
<슈퍼키 여부 판단 방법>
슈퍼키 여부 판단은 비트의 &(and) 연산을 적용합니다.
1. 정답에 포함되는 candidateKey
2. 현재 슈퍼키 여부를 검증해야하는 정답 후보 nowKey
boolean isSuperkey = ((candidateKey & nowKey) == candidateKey)
코드: https://github.com/cotchan/algorithm/blob/main/PRGRMS/%ED%9B%84%EB%B3%B4%ED%82%A4.java
'Algorithm > Programmers' 카테고리의 다른 글
[PRGRMS]67257번: 수식 최대화 (0) | 2022.03.10 |
---|---|
[PRGRMS]64065번: 튜플 (0) | 2022.03.10 |
[PRGRMS]92335번: k진수에서 소수 개수 구하기 (0) | 2022.03.05 |
[PRGRMS]67258번: 보석 쇼핑 (0) | 2022.03.04 |
[PRGRMS]81302번: 거리두기 확인하기 (0) | 2022.03.03 |