본문 바로가기

BOJ

[BOJ][Python] 백준 22993번 - 서든어택 3

728x90

문제 링크: https://www.acmicpc.net/problem/22993

22993번: 서든어택 3

좋은 전투 순서가 존재해서 준원이만 생존하고 나머지 플레이어가 모두 죽게 만들 수 있다면 Yes를, 반대로 전투가 어떤 순서로 이루어져도 준원이가 절대 최후의 생존자가 될 수 없다면 No를

www.acmicpc.net



문제 풀이

그리디 문제이다. 두 사람이 동시에 싸우지 못하니 그냥 준원이가 차례차례 한사람씩 싸운다 생각하자.
우리는 준원이를 최후의 생존자로 만들어야 하니 최적의 조건으로 맞춰줘야 하기 때문이다.
최후의 생존자로 만들기 위해서는 좋은 순서를 만들어줘야 하는데 약한 적부터 강한 적으로 오름차순 정렬을 해주면 된다. 약한 적이랑 만나면서 공격력을 올려주면 되는 것이다.

하지만 최후의 생존자가 되려면 모두를 죽여야 한다. 즉, 전투력이 같은 사람이 단 한 명도 존재하면 안된다. 서로 죽이지 못하기 때문이다. 따라서 반복문으로 싸우는 걸 측정해서 준원이의 전투력이 큰 경우를 제외하면 모두 No를 출력해주면 된다.

코드

728x90