반응형
출처: https://www.acmicpc.net/problem/1205
Input
3 90 10
100 100 90
Output
3
N : 랭킹 리스트에 올라와 있는 점수 개수( 0 <= N <= P)
X : 문제에서 요구하는 '송유진'의 점수
P : 랭킹리스트 size (10 <= P <=50)
* N개의 점수는 비오름차순으로 주어지며, 같은 점수이며 동일한 등수로 처리
※ 비오름차순(≠ 내림차순); 오름차순에서 같은 숫자가 존재.
ex) 랭킹 리스트 = {100, 90, 90, 80}일 때,
각각의 등수는 1, 2, 2, 4등 입니다.
* 랭킹 리스트에 등록될 수 있는 점수가 제한적이기에
만약 점수가 랭킹 리스트에 올라갈 수 없을 정도로 낮다면 『 -1 』 출력
Input
3 30 10
40 30 30 30 30 30 30 30 30 30
Output
2
랭킹 리스트에 점수들이 없는 경우 ( 0 <= N <= P )
Input
0 5 10
Output
1
꽉 찬 랭킹 리스트가 아니면서 제일 낮은 점수로 진입할 수 있을 때
Input
9 5 10
10 10 10 9 9 8 7 6 6
Output
10
import java.util.Scanner;
public class Main {
public static void main(String[] args) {
Scanner sc = new Scanner(System.in);
int N = Integer.parseInt(sc.next());
int X = Integer.parseInt(sc.next());
int P = Integer.parseInt(sc.next());
int[] rankList = new int[P];
for(int i=0; i<N; i++) {
rankList[i] = Integer.parseInt(sc.next());
}
// 애초에 랭킹 리스트에 점수가 없었던 경우
if(N == 0) {
System.out.println("1");
return;
}
for(int i=0; i<N; i++) {
// 기존의 랭킹 리스트에 중간에 진입할 수 있는지 확인한다.
// (만약 꽉찬 리스트라면 반드시 기존리스트에서 어딘가 진입해야 랭커가 된다.)
if (rankList[i] <= X) {
// 기존의 랭킹리스트에 있는 점수와 같을 때, 중간위치에 있는 등수라면 문제가 없지만
// 2번째 Test Case처럼 랭킹이 꽉 차있으며 마지막 등수의 점수와 동일한지를 확인한다.
if(rankList[i] == X && N == P) {
boolean flag = true;
// 꽉찬 랭킹리스트에서 제일 낮은 점수인지를 확인한다.
// 랭킹 리스트에 뒤쪽에 남아 있는 점수 중에서 낮은 점수가 존재한다면..
// 2번째 Test Case말고도 가령 꽉 차 있는 리스트 [3 3 3]이면서 X = 3인 경우에도 진입을 하지 못한다.
for(int temp = i+1; temp < N; temp++) {
if(rankList[i] > rankList[temp]) {
flag = false;
break;
}
}
if(flag) { // Test Case 2번 같은 경우도 이에 해당된다.
System.out.println("-1");
return;
}
}
// 랭킹은 '1'등 부터이니 인덱스 + 1
System.out.println(i+1);
return;
}
}
// 꽉찬 리스트가 아닌 기존 리스트에 (중간)진입하지 못한 경우
// 맨 마지막 랭킹 점수가 된다.
if(N < P) {
System.out.println(N+1);
return;
}
// 그 외의 경우는 어떤 이유든 랭킹 진입에 실패한 경우
System.out.println("-1");
}
}
반응형
'PS 문제 풀이 > Baekjoon' 카테고리의 다른 글
[BOJ] 백준 2667 단지 번호 붙이기 (0) | 2021.02.24 |
---|---|
[BOJ] 백준 1652 누울 자리를 찾아라 (0) | 2021.02.24 |
[BOJ] 백준 9012 괄호 (0) | 2021.02.24 |
[BOJ] 백준 1193 분수찾기 (0) | 2021.02.24 |
[BOJ] 백준 1021 회전하는 큐 (0) | 2021.02.24 |
댓글