[알고리즘] 바이러스 검사

2024. 3. 20. 23:28알고리즘 풀이/Java

https://www.codetree.ai/training-field/frequent-problems/problems/virus-detector/explanation?page=3&pageSize=20

 

코드트리 | 코딩테스트 준비를 위한 알고리즘 정석

국가대표가 만든 코딩 공부의 가이드북 코딩 왕초보부터 꿈의 직장 코테 합격까지, 국가대표가 엄선한 커리큘럼으로 준비해보세요.

www.codetree.ai

import java.io.BufferedReader;
import java.io.IOException;
import java.io.InputStreamReader;
import java.util.StringTokenizer;

public class Main {

    public static void main(String[] args) throws IOException {
        BufferedReader br = new BufferedReader(new InputStreamReader(System.in));
        int n = Integer.parseInt(br.readLine());
        StringTokenizer st = new StringTokenizer(br.readLine());

        int[] foods = new int[n];
        for (int i = 0; i < n; i++) {
            foods[i] = Integer.parseInt(st.nextToken());
        }
        st = new StringTokenizer(br.readLine());
        int leaderInspection = Integer.parseInt(st.nextToken());
        int memberInspection = Integer.parseInt(st.nextToken());

        long result = 0;
        for (int food : foods) {
            result++;
            food -= leaderInspection;
            if (food <= 0) {
                continue;
            }

            if (food <= memberInspection) {
                result++;
                continue;
            }

            if (food % memberInspection == 0) {
                result += food / memberInspection;
            } else {
                result += food / memberInspection + 1;
            }
        }
        System.out.println(result);
    }

}

- 경우의 수를 잘 나누어야한다.