99클럽 코테 스터디 TIL - 백준 등수구하기

혀니·2024년 4월 14일

코딩 TIL

목록 보기
16/28


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

백준 1205 실버4 등수구하기

처음에 정렬문제인가 싶었는데 그냥 구현 문제였다.
의외로 시간초과가 안났던...


  1. arr가 꽉 찼을 경우 new_score이 arr의 마지막 요소보다 작으면 -1
  2. arr[i]가 new_score보다 클 경우 count(등수)를 증가시킴
  3. 작아지거나 같으면 이를 출력
  4. N이 0이면 입력도 받을 수 없으니 N=0일 때 System.exit(0)으로 아래 코드를 실행하지 않게 했음
    -> 바꿈. System.exit(0) 필요 없고 else 부분을 N == 0 이후 전체로 바꿈
import java.io.BufferedReader;
import java.io.IOException;
import java.io.InputStreamReader;
import java.util.*;

public class Main {
    public static void main(String[] args) throws IOException {
        BufferedReader bufferedReader = new BufferedReader(new InputStreamReader(System.in));
        String str = bufferedReader.readLine();
        int N = Integer.parseInt(str.split(" ")[0]);
        int new_score = Integer.parseInt(str.split(" ")[1]);
        int P = Integer.parseInt(str.split(" ")[2]);

        int arr[] = new int[P];

        if (N == 0) {
            System.out.println(1);
        } else {
            StringTokenizer stringTokenizer = new StringTokenizer(bufferedReader.readLine());
            for (int i = 0; i < N; i++) {
                arr[i] = Integer.parseInt(stringTokenizer.nextToken());
            }
            
            if (N == P && arr[arr.length - 1] >= new_score) {
                System.out.println(-1);
            } else {
                int count = 1;
                for (int i = 0; i < arr.length; i++) {
                    if (arr[i] > new_score) {
                        count++;
                    } else {
                        break;
                    }
                }
                System.out.println(count);

            }
        }
    }
}

0개의 댓글