[일반 프로그래밍 문제] 문제 선정하기
Beginner
Category
Programming
Points
100p
한 프로그래밍 대회의 운영진으로 참여하게 된 성규는 대회를 위한 문제 선정을 담당하게 되었다. 출제진들은 총 N개의 문제를 출제했으며, 각 문제의 난이도는 여러 평가위원에 의해 평가되어 있다. 각 문제의 난이도는 하나의 정수로 표현되며, 더 작은 숫자를 가질수록 더 쉬운 문제가 된다. 난이도 수치가 같은 문제는 동일한 난이도의 문제라고 생각할 수 있다.
성규는 대회 진행을 위해 총 세 개의 문제를 선정하려고 한다. 하지만 참가자들의 단계적인 평가를 위해 다음과 같은 기준을 따라야 한다.
- 첫 번째 문제는 두 번째 문제보다 난이도가 낮아야 한다.
- 두 번째 문제는 세 번째 문제보다 난이도가 낮아야 한다.
- 두 문제의 난이도가 같아서는 안 된다.
예를 들어서 다섯 개의 문제가 출제되었고 난이도가 각각 [5, 4, 4, 3, 1]이라면 난이도 [1, 4, 5]인 세 문제로 한 세트를 구성할 수 있다. [1, 4, 4]와 같이 구성하게 되면 두 번째 문제와 세 번째 문제의 난이도가 일치하므로 이런 구성은 불가능하다.
출제진이 출제한 N개의 문제들의 난이도가 주어졌을 때, 위의 기준을 따른 대회 문제가 한 세트 이상 구성이 가능한지 판별하는 프로그램을 작성하시오.
입력 형식
첫 번째 줄에는 출제된 문제의 개수를 나타내는 1 이상 10 이하의 자연수 N이 주어진다.
두 번째 줄에는 각 문제의 난이도를 나타내는 N개의 정수가 공백으로 구분되어 주어진다.
- 문제의 난이도는 1이상 10이하의 자연수로 표현된다.
출력 형식
문제 선정 기준에 맞는 세 문제의 선정이 가능하다면 YES
를 출력한다. 그렇지 않다면 NO
를 출력한다.