[일반 프로그래밍 문제] 문제 선정하기 - (주)구르미 신입 개발자 공개채용 코딩테스트
Quiz Info
Quiz Info
[일반 프로그래밍 문제] 문제 선정하기
100points

한 프로그래밍 대회의 운영진으로 참여하게 된 성규는 대회를 위한 문제 선정을 담당하게 되었다. 출제진들은 총 N개의 문제를 출제했으며, 각 문제의 난이도는 여러 평가위원에 의해 평가되어 있다. 각 문제의 난이도는 하나의 정수로 표현되며, 더 작은 숫자를 가질수록 더 쉬운 문제가 된다. 난이도 수치가 같은 문제는 동일한 난이도의 문제라고 생각할 수 있다.

성규는 대회 진행을 위해 총 세 개의 문제를 선정하려고 한다. 하지만 참가자들의 단계적인 평가를 위해 다음과 같은 기준을 따라야 한다.

  • 첫 번째 문제는 두 번째 문제보다 난이도가 낮아야 한다.
  • 두 번째 문제는 세 번째 문제보다 난이도가 낮아야 한다.
  • 두 문제의 난이도가 같아서는 안 된다.

예를 들어서 다섯 개의 문제가 출제되었고 난이도가 각각 [5, 4, 4, 3, 1]이라면 난이도 [1, 4, 5]인 세 문제로 한 세트를 구성할 수 있다. [1, 4, 4]와 같이 구성하게 되면 두 번째 문제와 세 번째 문제의 난이도가 일치하므로 이런 구성은 불가능하다.

출제진이 출제한 N개의 문제들의 난이도가 주어졌을 때, 위의 기준을 따른 대회 문제가 한 세트 이상 구성이 가능한지 판별하는 프로그램을 작성하시오.


입력 형식

첫 번째 줄에는 출제된 문제의 개수를 나타내는 1 이상 10 이하의 자연수 N이 주어진다.

두 번째 줄에는 각 문제의 난이도를 나타내는 N개의 정수가 공백으로 구분되어 주어진다.

  • 문제의 난이도는 1이상 10이하의 자연수로 표현된다.


출력 형식

문제 선정 기준에 맞는  세 문제의 선정이 가능하다면 YES를 출력한다. 그렇지 않다면 NO를 출력한다.


시험과 동일한 환경에서 알고리즘 공부부터 시험 대비까지 하고 싶다면?
코딩테스트 완전정복

Input/Output Example
:
Blank
:
Line Break
:
Tab
Example 1
Input
6
314159
Output
YES
Example 2
Input
5
1101101
Output
NO
⋇ Please keep the input and output formats carefully
Quiz Info