๋ฌธ์
http://www.jungol.co.kr/bbs/board.php?bo_table=pbank&wr_id=1101&sca=99&sfl=wr_hit&stx=1828
ํ์ด
ํ ๋์ฅ๊ณ ์ ํํ๋ฌผ์ง์ ์ต๋๋ก ๋ด์์ผ ํ๋ฏ๋ก '๊ทธ๋ฆฌ๋' ์๊ณ ๋ฆฌ์ฆ ์ ์ฉ
ํํ๋ฌผ์ง์ ์ต์ ๋ณด๊ด์จ๋์ ์ต๊ณ ๋ณด๊ด ์จ๋๋ฅผ ์ ์ฅํ Material ํด๋์ค ์ ์ธ
Materialํด๋์ค์ Comparable๋ฅผ implementํ์ฌ max๊ฐ์ ๋ฐ๋ผ ์ค๋ฆ์ฐจ์์ผ๋ก ์ ๋ ฌ๋ ์ ์๋๋ก ํจ.
์ค๋ฆ์ฐจ์ ์ ๋ ฌ ํ, Max๋ฅผ ์ฒซ๋ฒ์งธ ์์์ max๊ฐ์ผ๋ก ์ ์ฅ.
mat[i]์ min ๊ฐ์ด ํ์ฌ max๊ฐ๋ณด๋ค ํด ๊ฒฝ์ฐ ๊ฐ์ด ์ ์ฅํ ์ ์์ผ๋ฏ๋ก cnt + 1 ํ ํ,
max๊ฐ์ ํด๋น ์์์ max๊ฐ์ผ๋ก ์ฌ์ค์
(์ด๋ฏธ max๊ฐ์ ๋ฐ๋ฅธ ์ค๋ฆ์ฐจ์ ์ ๋ ฌ์ ์งํ ํ์์ผ๋ฏ๋ก ๋ค์ ์์์ max๊ฐ์ด ์ด์ max๊ฐ๋ณด๋ค ์์ ์ ์์)
์ฝ๋
import java.io.*;
import java.util.*;
public class Main {
static class Material implements Comparable<Material>{
int min, max;
public Material(int min, int max) {
super();
this.min = min;
this.max = max;
}
@Override
public int compareTo(Material o) {
int val = this.max - o.max;
if(val != 0) return val;
return this.min - o.min;
}
}
public static void main(String[] args) throws Exception{
BufferedReader br = new BufferedReader(new InputStreamReader(System.in));
int n = Integer.parseInt(br.readLine());
Material[] mat = new Material[n];
for(int i =0 ; i< n ; i++) {
StringTokenizer st = new StringTokenizer(br.readLine()," ");
mat[i] = new Material(Integer.parseInt(st.nextToken()), Integer.parseInt(st.nextToken()));
}
Arrays.sort(mat);
int max = 0;
int cnt = 1;
for(int i =1 ; i < mat.length ; i++) {
if(max<mat[i].min) {
cnt++;
max = mat[i].max;
}
}
System.out.println(cnt);
}
}
'๐ ์๊ณ ๋ฆฌ์ฆ > Greedy' ์นดํ ๊ณ ๋ฆฌ์ ๋ค๋ฅธ ๊ธ
[๋ฐฑ์ค] 11000๋ฒ ๊ฐ์์ค ๋ฐฐ์ (java) (0) | 2021.08.20 |
---|---|
[๋ฐฑ์ค] 2839๋ฒ ์คํ๋ฐฐ๋ฌ(java) (0) | 2021.08.17 |