반응형
https://programmers.co.kr/learn/courses/30/lessons/49191
처음에는 그래프로 분류되어 있길래 위상정렬 문제인가 싶어서 한참 고민한 문제.
이 문제의 핵심은 '선수 A'가 있을 때, A를 이긴 사람과 A에게 진 사람의 수를 합치면 n-1이 되도록 만드는 것.
그리고 "A에게 진 사람은 A를 이긴 사람에게 반드시 진다' 와 'A를 이긴 사람은 A에게 진 사람을 반드시 이긴다'는 조건.
위 문제의 예시라면,
2번 선수가 5번 선수를 이겼고 1,3,4번 선수에게 졌다는 것은
'2번 선수에게 진' 5번 선수는 '2번 선수를 이긴' 1, 3, 4번에게 반드시 진다.
'2번 선수를 이긴' 1, 3, 4번 선수는 '2번 선수에게 진' 5번에게 반드시 이긴다.
라는 의미다.
명제부터가 꽤나 헷갈리고, 코드 짤 때 변수 이름때문에 한 번 더 헷갈리는 유형의 문제..
반응형
'프로그래밍 > 코딩테스트 문제풀이' 카테고리의 다른 글
[Python] 백준 16234. 인구 이동 (0) | 2019.11.17 |
---|---|
[Python] 프로그래머스. 숫자 블록 (Level 4) (0) | 2019.11.16 |
[Python] 백준 13458. 시험 감독 (0) | 2019.11.14 |
[Python] 프로그래머스. 디스크 컨트롤러 (Level 3) (0) | 2019.11.13 |
[Python] 백준 10775. 공항 (0) | 2019.11.12 |