티스토리 뷰

728x90

https://www.acmicpc.net/problem/1205

 

1205번: 등수 구하기

첫째 줄에 N, 송유진의 새로운 점수, 그리고 P가 주어진다. P는 10보다 크거나 같고, 50보다 작거나 같은 정수, N은 0보다 크거나 같고, P보다 작거나 같은 정수이다. 그리고 모든 점수는 2,000,000,000

www.acmicpc.net

 

내림차순으로 입력이 들어간다는 특징을 잘 이용해야 합니다.

동점수가 있으면 같은 등수로 취급하는 구현은 여러가지 있겠지만,

이 문제에서는 내림차순이란 특징을 살려 아무 행동도 취하지 않는 것입니다.

그 외 취득한 점수(P)가 주어진 점수 배열의 값보다 낮을 땐 등수(R)를 올리고 아니라면

break문으로 반복문을 종료합니다.

 

 

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
import java.util.*;
 
public class Main {
    public static void main(String args[]) {
        Scanner sc = new Scanner(System.in);
        int N = sc.nextInt();
        int P = sc.nextInt();
        int L = sc.nextInt();
        
        int rank[] = new int [100];
        
        for(int i=0; i<N; i++) {
            rank[i] = sc.nextInt();
        }
        
        sc.close();
        
        int cnt = 0;
        int R = 1;
        
        for(int i=0; i<N; i++) {
            if(P<rank[i]) R += 1;
            else if(P==rank[i]) {}
            else break;
            cnt++;
        }
        
        if(cnt==L) R = -1;
        if(N==0) R = 1;
        
        System.out.println(R);
    }
}
cs

 

 

댓글