본문 바로가기
Algorithm

[정올] 1828: 냉장고(Java)

by 옥돔이와 연근이 2022. 8. 30.
728x90
반응형

문제

**N개의 화학 물질 C1, C2, …, Cn이 있다.
이들 각각은 보관되어야 할 온도가 각기 다른데, 각 Ci마다 최저 보관 온도 xi와 최고 보관 온도 yi가 정해져 있다.
즉 Ci는 온도 xi이상, yi이하의 온도에서 보관되어야만 안전하다.

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

입력형식

첫줄에 화학물질의 수 N이 입력된다. N의 범위는 1이상 100 이하이다.
두 번째 줄부터 N+1줄까지 최저보관온도와 최고보관온도가 입력된다.
보관온도는 -270° ~ 10000°이며, 각 냉장고는 임의의 정해진 온도를 일정하게 유지할 수 있고, 냉장고는 아주 크다고 가정한다.

출력형식

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

입력 예

4
-15 5
-10 36
10 73
27 44

출력 예

2


문제 이해가 잘 되지 않아서 조금 시간이 걸렸다


🤦‍♀️ My Solution

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

public class Main_1828 {

    static class Node {
        int s;
        int e;

        public Node(int s, int e) {
            super();
            this.s = s;
            this.e = e;
        }

    }

    public static void main(String[] args) throws IOException {
        BufferedReader br = new BufferedReader(new InputStreamReader(System.in));
        StringTokenizer st;
        ArrayList<Node> mInfo = new ArrayList<>();

        int N = Integer.parseInt(br.readLine());

        for (int i = 0; i < N; i++) {
            // 최댓값(끝값)이 가장 작은 애 -> 1개
            st = new StringTokenizer(br.readLine());
            int s = Integer.parseInt(st.nextToken());
            int e = Integer.parseInt(st.nextToken());
            mInfo.add(new Node(s, e));
        }

        int res = 0;
        while (!mInfo.isEmpty()) {
            int min = Integer.MAX_VALUE;
            for (int i = 0; i < mInfo.size(); i++) {
                if (min > mInfo.get(i).e) {
                    min = mInfo.get(i).e;
                }

            }

            for (int i = 0; i < mInfo.size(); i++) {
                if (min >= mInfo.get(i).s) {
//min 보다 작은 값 시작값 들은 모두 삭제 
                    mInfo.remove(i);
                    i--;
                } else {
                    continue;
                }
            }
            res += 1;

        }
        System.out.println(res);
    }

}

728x90

'Algorithm' 카테고리의 다른 글

[SWEA] 1247번: 최적 경로(Java)  (0) 2022.08.30
[BJ] 3109: 빵집(Java)  (0) 2022.08.30
[BJ] 1541번: 잃어버린 괄호(Java)  (0) 2022.08.30
[Java] 순열/조합/부분집합  (0) 2022.08.30
[Java] 조합 (Combination)  (0) 2022.08.30