<출처: https://programmers.co.kr/learn/courses/30/lessons/64064>
배열 크기 제한이 크지 않으므로 팩토리얼로 경우의 수를 생성해도 시간초과가 나지 않습니다.
user_id 목록을 next_permutation을 통해 모든 경우의 수를 생성해주고, 이를 banned_id 와 비교해줍니다.
포함되는 경우의 수는 비트연산자 & set을 통해 특정 상태 나타내는 하나의 수를 set에 저장하였습니다.
set에 들어있는 수는 banned_id 리스트와 일치하는 user_id의 유일한 목록을 나타내므로
set에 들어가있는 원소의 수가 정답이 됩니다.
<코드: https://github.com/cottory/algorithm/blob/master/PROGRAMMERS/kakao22_0505.cc>
'Algorithm > Programmers' 카테고리의 다른 글
[2018 카카오 기출] 자동완성 (0) | 2020.05.08 |
---|---|
[2019 카카오 기출] 징검다리 건너기 (0) | 2020.05.06 |
[2020 카카오 기출] 자물쇠와 열쇠 (0) | 2020.05.06 |
[2019 카카오 기출] 호텔 방 배정 (0) | 2020.05.06 |
[2019 카카오 기출] 블록 게임 (0) | 2020.05.04 |