본문 바로가기
Algorithm

Jungol 1828 냉장고 JAVA

by Hunveloper 2022. 2. 16.
728x90
 

JUNGOL

 

www.jungol.co.kr

 

문제

N개의 화학 물질 C1, C2, …, Cn이 있다.

이들 각각은 보관되어야 할 온도가 각기 다른데, 각 Ci마다 최저 보관 온도 xi와 최고 보관 온도 yi가 정해져 있다. 

즉 Ci는 온도 xi이상, yi이하의 온도에서 보관되어야만 안전하다.

 

이 화학 물질들을 모두 보관하기 위해서는 여러 대의 냉장고가 필요한데 가능하면 적은 수의 냉장고를 사용하고 싶다. 

이를 해결하는 프로그램을 작성하시오.

입력

첫줄에 화학물질의 수 N이 입력된다. N의 범위는 1이상 100 이하이다.

두 번째 줄부터 N+1줄까지 최저보관온도와 최고보관온도가 입력된다. 

보관온도는 -270° ~ 10000°이며, 각 냉장고는 임의의 정해진 온도를 일정하게 유지할 수 있고, 냉장고는 아주 크다고 가정한다.

출력

첫줄에 최소로 필요한 냉장고의 대수를 출력한다.

참고

2022.02.03 - [Algorithm/Baekjoon] - Baekjoon 1931 회의실 배정 JAVA

코드
import java.util.Arrays;
import java.util.Comparator;
import java.util.Scanner;

public class Main {
	public static void main(String[] args) {
		Scanner sc = new Scanner(System.in);
		int n = sc.nextInt();
		int[][] fridge = new int[n][2];
		for (int i = 0; i < n; i++) {
			fridge[i][0] = sc.nextInt();
			fridge[i][1] = sc.nextInt();
		}
		Arrays.sort(fridge, new Comparator<>() {
			@Override
			public int compare(int[] o1, int[] o2) {
				if (o1[0] == o2[0])
					return o1[1] - o2[1];
				else
					return o1[1] - o2[1];
			}
		});

		int cnt = 1, temp = fridge[0][1];
		for (int i = 1; i < n; i++) {
			if (!( fridge[i][0] <= temp && temp<=fridge[i][1])) {
				temp = fridge[i][1];
				cnt++;
			}
		}
		System.out.println(cnt);
	}
}
728x90
728x90

'Algorithm' 카테고리의 다른 글

Start Baekjoon using JAVA  (0) 2022.01.10

댓글