본문 바로가기
알고리즘/구현

[백준 13458] 시험감독 / 자바 /그리드

by 순원이 2024. 7. 3.

문제         

레벨: B2
알고리즘: 구현 

풀이시간: 10분
힌트 참조 유무: 무

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

1 번째 시도   

삼성SW역량테스트인데도 말도 안되게 쉬워 푸는 내내 경계했다. 그러나 쉬운 문제가 맞았다. 

단 주의해야 하는 건 입력값이다. 입력값의 최대값을 생각해보자.
B =1, C= 1, 시험장의 개수 1,000,000 x 응시자수 1,000,000  = 1,000,000,000,000 1조이기 때문에 ans를 int형으로 쓰면 틀린다.

import java.io.BufferedReader;
import java.io.InputStreamReader;

class Main {
    public static void main(String[] args) throws Exception {
        BufferedReader br = new BufferedReader(new InputStreamReader(System.in));
        int N = Integer.parseInt(br.readLine());
        String[] s = br.readLine().split(" ");

        int[] students = new int[N];
        for (int i = 0; i < N; i++) {
            students[i] = Integer.parseInt(s[i]);
        }

        String[] s2 = br.readLine().split(" ");
        int B = Integer.parseInt(s2[0]);
        int C = Integer.parseInt(s2[1]);


        long ans = 0;
        for (int i = 0; i < N; i++) {
            int mod = students[i] - B;
            ans++;
            if (mod > 0) {
                if (mod % C == 0)
                    ans += mod / C;
                else {
                    ans += mod / C + 1;
                }
            }
        }
        System.out.println(ans);
    }
}