문제
출처 : www.acmicpc.net/problem/17349
17349번: 1루수가 누구야
(1 2)가 거짓말이라면, 선수 2가 1루수라는 주장과 1루수가 아니라는 주장이 동시에 존재하여 모순이다. (0 4)가 거짓말인 경우도, 마찬가지의 이유로 모순이다. (0 2)가 거짓말인 경우, 선수 2를 유��
www.acmicpc.net
총 9명의 선수중 1루수가 누구인지 찾는 문제이다.
9개의 줄에거쳐 각 선수가 주장을하는데 무조건 한명은 거짓말을 하고있다.
선수들의 주장은
1 A: 선수 A가 1루수이다.
0 A: 선수 A는 1루수가 아니다.
로 나타난다.
(단, 1루수를 찾을수 없으면 -1을 출력한다.)
풀이
"한명의 선수가 거짓말을 하고있다." 는 조건이 있으니,
1번 선수가 거짓말을 할때, 2번 선수가 거짓말을 할때, 3번 선수가 거짓말을 할때...9번 선수가 거짓말을 할때 로 나눠서 완전탐색을 돌린다.(즉, n번 선수가 거짓말을 하고있다고 가정을 하고 탐색을 한다.)
이때, 1루수를 찾으면 출력하고 종료하고 9번선수가 거짓말을 할때까지 1루수를 찾지 못하면 -1을 출력한다.
예를들어,
1 2
0 2
1 2
1 2
1 2
0 4
0 4
0 4
0 4
의 경우, 2번선수가 거짓말을 하고있다면,
0 2 -> 1 2 로 바뀌게되고, 모든 선수가 2번이 1루수라고 증언하므로 2번이 1루수 이다.
반례를 조심해야했는데..(이것때문에 틀렸었다)
0 1
0 1
0 1
0 2
0 2
0 2
0 3
0 3
0 3
의 경우
1루수는 4 5 6 7 8 9 가 될수있다. 따라서 -1을 출력해야한다.
소스코드
devxb/JJUNalgo
백준 알고리즘 소스코드🙃. Contribute to devxb/JJUNalgo development by creating an account on GitHub.
github.com
'알고리즘 (2020 : 08 : 10 ~ ) > 완전탐색' 카테고리의 다른 글
[백준 / BOJ] 3042 트리플렛 (0) | 2020.09.19 |
---|---|
[백준 / BOJ] 1034 램프 (0) | 2020.08.21 |
[백준 / BOJ] 1079번 마피아 (0) | 2020.08.11 |
[백준 / BOJ] 2798 블랙잭 (0) | 2020.08.11 |
[백준 / BOJ] 14754 Pizza Boxes (0) | 2020.08.10 |