문제
http://www.jungol.co.kr/bbs/board.php?bo_table=pbank&wr_id=1101&sca=99&sfl=wr_hit&stx=1828
내 문제 풀이
import java.io.BufferedReader;
import java.io.InputStreamReader;
import java.util.Arrays;
import java.util.StringTokenizer;
public class Main {
static int n;
static class Refrigerator implements Comparable<Refrigerator>{
int low, high;
public Refrigerator(int low, int high) {
super();
this.low = low;
this.high = high;
}
@Override
public int compareTo(Refrigerator o) {
return this.high != o.high ? this.high - o.high : this.low - o.low;
}
}
public static void main(String[] args) throws Exception {
BufferedReader in = new BufferedReader(new InputStreamReader(System.in));
StringTokenizer st;
n = Integer.parseInt(in.readLine());
Refrigerator[] r = new Refrigerator[n];
for (int i = 0; i < n; i++) {
st = new StringTokenizer(in.readLine());
r[i] = new Refrigerator(Integer.parseInt(st.nextToken()), Integer.parseInt(st.nextToken()));
}
Arrays.sort(r); // 최대 온도 기준 정렬
int cnt = 1;
int max = r[0].high;
for (int i = 1; i < r.length; i++) {
if(r[i].low > max) {
max = r[i].high;
cnt++;
}
}
System.out.println(cnt);
}
}
👉 그리디 문제
최대 온도를 기준으로 정렬하고, 최대 온도가 같을 경우 최소 온도를 기준으로 정렬했다.
max 변수를 활용, 정렬된 배열을 돌면서 겹쳐지지 않는 부분을 구별했다.
💡 피드백
- 어려운 문제는 아니지만, 자바로 '~~기준 정렬하고 ~~같으면 ~~정렬'과 같은 정렬을
잘 할줄 몰랐는데,,,! 이번 기회로 공부하게 되어서 이렇게 정리해 보았당.
'2️⃣ Java > Problem Solving' 카테고리의 다른 글
[Java Algorithm] 쿼드트리 BOJ #1992 (0) | 2022.08.18 |
---|---|
[Java Algorithm] Z BOJ #1074 (0) | 2022.08.16 |
[Java Algorithm] 알파벳 BOJ #1987 (0) | 2022.08.16 |
[Java Algorithm] 두 동전 BOJ #16197 (0) | 2022.08.16 |
[Java Algorithm] 숨바꼭질 2 BOJ #12851 (0) | 2022.08.16 |
댓글