공모전 통과 사진
문제
어느 사진 공모전에 사진 N장이 출품되었다. 심사위원은 출품된 사진에 구도 순위와 색감 순위를 각각 매겼다. 두 순위 모두 1등부터 N등까지 한 장씩 매겨지므로 같은 순위를 받은 사진은 없다. 순위는 수가 작을수록 앞선다.
사진을 가리는 규칙은 다음과 같다. 어떤 사진이 다른 사진 한 장에게 구도 순위와 색감 순위 둘 다 밀리면 그 사진은 떨어진다. 다른 모든 사진과 견주었을 때 적어도 한 순위에서는 밀리지 않는 사진만 통과한다.
예를 들어 사진 N=5장의 순위가 다음의 표와 같다고 해보자.
| 사진 | 1 | 2 | 3 | 4 | 5 |
|---|---|---|---|---|---|
| 구도 순위 | 5 | 4 | 3 | 1 | 2 |
| 색감 순위 | 1 | 3 | 5 | 2 | 4 |
4번 사진은 구도 1등에 색감 2등이다. 2번 사진은 구도 4등에 색감 3등이라 4번 사진에게 두 순위 모두 밀리므로 떨어진다. 3번 사진과 5번 사진도 같은 까닭으로 4번 사진에게 두 순위 모두 밀려 떨어진다. 1번 사진은 구도가 5등으로 꼴찌지만 색감이 1등이라 어느 사진에게도 색감에서 밀리지 않는다. 4번 사진은 구도가 1등이라 어느 사진에게도 구도에서 밀리지 않는다.
| 사진 | 구도 순위 | 색감 순위 | 결과 |
|---|---|---|---|
| 1 | 5 | 1 | 통과 |
| 2 | 4 | 3 | 탈락 |
| 3 | 3 | 5 | 탈락 |
| 4 | 1 | 2 | 통과 |
| 5 | 2 | 4 | 탈락 |
따라서 이 공모전에서 통과하는 사진은 2장이다.
구도 순위가 앞선 사진부터 차례로 훑어 보면 규칙이 보인다. 위 예시의 사진을 구도 순위대로 늘어놓으면 다음과 같다.
| 구도 순위 | 1 | 2 | 3 | 4 | 5 |
|---|---|---|---|---|---|
| 사진 | 4 | 5 | 3 | 2 | 1 |
| 색감 순위 | 2 | 4 | 5 | 3 | 1 |
| 그때까지 본 색감 최고 순위 | 2 | 2 | 2 | 2 | 1 |
| 결과 | 통과 | 탈락 | 탈락 | 탈락 | 통과 |
구도 순위가 가장 앞선 4번 사진은 구도에서 밀릴 상대가 없으므로 통과한다. 그 뒤에 나오는 사진은 구도에서 이미 4번에게 밀리고 있으므로, 색감 순위가 지금까지 본 색감 최고 순위보다 앞서야 통과한다. 5번과 3번과 2번은 색감 순위가 2보다 뒤처져 떨어지고, 1번은 색감 1등이라 통과한다.
공모전 여러 번에 대한 정보가 한 번에 주어졌을 때, 각 공모전에서 통과하는 사진이 몇 장인지 차례대로 구하는 프로그램을 작성하여라.
입출력 예시
예시 1
입력
1 5 5 1 4 3 3 5 1 2 2 4
출력
2
예시 2
입력
2 3 1 3 2 1 3 2 4 3 2 1 4 4 3 2 1
출력
2 2
예시 3
입력
1 7 1 7 4 5 5 4 7 2 2 6 3 3 6 1
출력
4
입력 조건
가장 먼저 첫째 줄에 공모전의 수 T가 주어진다. T는 3보다 작거나 같은 자연수다.
이어서 T번의 공모전에 대한 정보가 차례대로 주어진다. 각 공모전의 정보는 먼저 출품된 사진의 수 N이 한 줄에 주어지고, 이어서 N개의 줄에 걸쳐 사진 한 장의 구도 순위와 색감 순위가 공백 하나로 구분되어 주어진다. N은 100,000보다 작거나 같은 자연수다.
구도 순위와 색감 순위는 각각 1부터 N까지의 자연수가 한 번씩 나타난다. 사진은 순위와 상관없는 순서로 주어진다.
출력 조건
각 공모전에 대하여 통과하는 사진의 수를 주어진 순서대로 한 줄에 하나씩 출력한다.
한 줄에 수 하나를 출력하고 줄을 바꾼다. 줄 끝에 공백을 붙이거나 마지막에 빈 줄을 더 붙이지는 않는다.
요구사항
- 입력은 표준 입력으로 받고 답은 표준 출력으로 내보냅니다
- 두 순위 모두 밀려야 떨어집니다. 한 순위만 밀리는 사진은 그 때문에 떨어지지 않습니다
- 순위는 수가 작을수록 앞섭니다. 구도 1등은 어느 사진에게도 구도에서 밀리지 않습니다
- 공모전이 여러 번 주어지므로 한 공모전의 결과를 다음 공모전으로 넘기지 않도록 합니다
- N이 100,000까지 올라가므로 사진을 두 장씩 짝지어 모두 견주는 방법으로는 시간 안에 끝나지 않습니다
- 공모전 하나마다 수 하나를 출력하고 줄을 바꿉니다. 마지막에 빈 줄을 더 붙이지 않습니다
- 채점은 출력을 기대값과 글자 하나까지 견줍니다
- 표준 입력으로 읽고 표준 출력으로 내보내는 프로그램을 짜야 합니다
- 쓸 수 있는 말은 파이썬, 자바스크립트입니다
- 메모리 제한은 256MB입니다. 브라우저에서는 재지 않고 적기만 합니다
- 시간 제한은 출제자의 정답 코드를 같은 런타임에서 재서 정합니다
- 이 문제는 프롬프트가 아니라 코드를 냅니다. 그 코드는 이 기기의 브라우저에서 돌고, 서버로는 나온 출력의 지문과 걸린 시간만 갑니다. 맞았는지는 서버가 정합니다. 실행 시간은 각자 기기가 적어 보내는 값이라, 코드와 기기 정보를 순위표에 같이 내걸어 둡니다.
- 케이스는 15개이고, 그 가운데 3개는 입력과 기대 출력을 함께 보여 줍니다. 나머지는 제출할 때만 쓰이고 화면에는 보여 주지 않습니다.
- 케이스 15개를 전부 통과해야 해결입니다.
예시
공개 케이스 3개입니다. 채점에는 숨은 케이스가 함께 쓰입니다. 케이스 15개를 전부 통과해야 해결입니다.
1 5 5 1 4 3 3 5 1 2 2 4
2
2 3 1 3 2 1 3 2 4 3 2 1 4 4 3 2 1
2 2
1 7 1 7 4 5 5 4 7 2 2 6 3 3 6 1
4
풀이
코드는 이 기기에서돕니다. 서버로는 나온 출력의 지문과 걸린 시간만 갑니다. 맞았는지는 서버가 정합니다.
제출은 로그인 하셔야 됩니다. 공개 케이스로 돌려보는 것은 로그인 없이도 됩니다.
공개 케이스 3개로 돌려보기가 됩니다. 제출하면 숨은 케이스까지 돕니다.
이 문제를 푼 사람
아직 없습니다. 첫 번째가 되실 수 있습니다.