문제 설명 프렌즈대학교 컴퓨터공학과 조교인 제이지는 네오 학과장님의 지시로, 학생들의 인적사항을 정리하는 업무를 담당하게 되었다. 그의 학부 시절 프로그래밍 경험을 되살려, 모든 인적사항을 데이터베이스에 넣기로 하였고, 이를 위해 정리를 하던 중에 후보키(Candidate Key)에 대한 고민이 필요하게 되었다. 후보키에 대한 내용이 잘 기억나지 않던 제이지는, 정확한 내용을 파악하기 위해 데이터베이스 관련 서적을 확인하여 아래와 같은 내용을 확인하였다. 관계 데이터베이스에서 릴레이션(Relation)의 튜플(Tuple)을 유일하게 식별할 수 있는 속성(Attribute) 또는 속성의 집합 중, 다음 두 성질을 만족하는 것을 후보 키(Candidate Key)라고 한다. 유일성(uniqueness) : ..
순열, 조합, 부분집합 순열, 조합, 부분집합을 만드는 알고리즘 정리 순열 순열이란? 서로 다른 n 개 중 r 개를 골라 순서를 고려해 나열한 경우의 수. 1, 2, 3, 4 중 3개를 뽑아 순열을 만든다면 가능한 경우는 다음과 같다. {1, 2, 3}, {1, 2, 4}, {1, 3, 2}, {1, 3, 4}, {1, 4, 2}, {1, 4, 3}, {2, 1, 3}, ... , {4, 2, 3}, {4, 3, 1}, {4, 3, 2} 순서를 고려해야 하므로 반복문을 이용하여 가장 앞의 원소부터 확인해야 한다. 또한, 중복은 허용하지 않기 때문에 포함 여부를 확인해야 한다. void Permutation(vector& nums, vector& checked, vector& perm) { if(perm...