티스토리 뷰

백준

백준(java)등수 구하기 - 1205

십발오징어 2023. 2. 23. 20:55

더 쉽게 푸는 방법이 있지만 멀리 돌아온 기분이다.

기존에 랭킹에 아무도 없다면 1을 출력하도록 한 후

배열arr에 N개의 점수를 넣은 후 태수의 점수를 추가하고, Arrays.sort 내림차순(Collections.reverseOrder())을

이용하여 배열을 완성시켰다.

그 다음 배열에서 태수의 점수와 일치하는 점수가 있다면 가장 마지막으로 같은 i값을 rank로 주고 만일 rank값이 P값을 넘어 선다면 -1이 출력하고

넘지 작거나 같으면 처음으로 나오는 i값을 rank로 설정하였다.

import java.io.BufferedReader;
import java.io.InputStreamReader;
import java.util.Arrays;
import java.util.Collections;
import java.util.StringTokenizer;

public class Main {
	public static void main(String[] args) throws Exception{
		BufferedReader br = new BufferedReader(new InputStreamReader(System.in));
		StringTokenizer st = new StringTokenizer(br.readLine());
		int N = Integer.parseInt(st.nextToken());
		int T = Integer.parseInt(st.nextToken());
		int P = Integer.parseInt(st.nextToken());
		
		if(N==0) {
			System.out.println(1);
		}else {
			Integer[]arr = new Integer[N+1];
			st = new StringTokenizer(br.readLine());
			for(int i=0;i<N;i++) {
				arr[i] = Integer.parseInt(st.nextToken());
			}
			arr[N] = T;
			Arrays.sort(arr,Collections.reverseOrder());
			int rank = 0;
				for(int i=0;i<arr.length;i++) {
					if(arr[i]==T) {
						rank=i+1;
					}
				}
				if(rank>P) {
					rank = -1;
				}else if(rank<=P) {
					for(int i=0;i<arr.length;i++) {
						if(arr[i]==T) {
							rank=i+1;
							break;
						}
					}
				}
			System.out.println(rank);
		}
	}
}

'백준' 카테고리의 다른 글

백준(java)진짜 공간 - 1350  (0) 2023.02.26
백준(java)이진수 덧셈 - 1252  (0) 2023.02.25
백준(java)문자열 - 1120  (0) 2023.02.22
백준(java)라디오 - 3135  (0) 2023.02.21
백준(java)행렬 곱셈 - 2740  (0) 2023.02.20
공지사항
최근에 올라온 글
최근에 달린 댓글
Total
Today
Yesterday
링크
«   2025/05   »
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
글 보관함