Jakorithm
article thumbnail
728x90

문제

https://www.codetree.ai/training-field/search/problems/developer's-computers?&utm_source=clipboard&utm_medium=text

 

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

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

www.codetree.ai

 

N명의 개발자가 시간 s부터 t까지 b개의 컴퓨터를 사용하려고 할 때, 모든 개발자가 무리 없이 일을 하기 위해 필요한 컴퓨터의 최소 개수를 구하는 문제다.

 

 

코드

 

첫 번째 줄에 정수 n이 주어지고, 두 번째 줄부터 n개의 줄에 걸쳐 s, t, b가 공백(" ")으로 구분되어 주어진다.

  • 1 <= N <= 100
  • 1 <= s < t <= 1000
  • 1 <= b <= 10
import java.io.BufferedReader;
import java.io.IOException;
import java.io.InputStreamReader;
import java.util.Arrays;
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;

        // 시간 별 가동중인 컴퓨터를 담기 위한 배열
        int[] computers = new int[1001];

        for (int i = 0; i < n; i++) {
            st = new StringTokenizer(br.readLine());
            int start = Integer.parseInt(st.nextToken());
            int end = Integer.parseInt(st.nextToken());
            int computer = Integer.parseInt(st.nextToken());

            // start부터 end까지 입력받은 컴퓨터 더하기
            for (int j = start; j <= end; j++) {
                computers[j] += computer;
            }
        }

        // 배열 정렬 후 마지막 인덱스 출력
        Arrays.sort(computers);
        System.out.println(computers[computers.length - 1]);
    }
}
728x90