๐ท๐ผ๋ชจ์ฌ๋ด์ ๊ฐ๋ฐ์์ฒ๐ท๐ผ
[JAVA/์ฝ๋ฉํ ์คํธ] ์จ๋ฆ ์ ์(Greedy Algorithm) ๋ณธ๋ฌธ
[JAVA/์ฝ๋ฉํ ์คํธ] ์จ๋ฆ ์ ์(Greedy Algorithm)
์์ผ์ด 2022. 2. 12. 00:09์ค๋ช
ํ์๋ ์จ๋ฆ ๊ฐ๋ ์ ๋๋ค. ํ์๋ ์จ๋ฆ ์ ์๋ฅผ ์ ๋ฐ๊ณต๊ณ ๋ฅผ ๋๊ณ , N๋ช ์ ์ง์์๊ฐ ์ง์์ ํ์ต๋๋ค.
ํ์๋ ๊ฐ ์ง์์์ ํค์ ๋ชธ๋ฌด๊ฒ ์ ๋ณด๋ฅผ ์๊ณ ์์ต๋๋ค.
ํ์๋ ์จ๋ฆ ์ ์ ์ ๋ฐ ์์น์ ๋ค์๊ณผ ๊ฐ์ด ์ ํ์ต๋๋ค.
“A๋ผ๋ ์ง์์๋ฅผ ๋ค๋ฅธ ๋ชจ๋ ์ง์์์ ์ผ๋์ผ ๋น๊ตํด์ ํค์ ๋ชธ๋ฌด๊ฒ ๋ชจ๋ A์ง์์ ๋ณด๋ค ๋์(ํฌ๊ณ , ๋ฌด๊ฒ๋ค) ์ง์์๊ฐ
์กด์ฌํ๋ฉด A์ง์์๋ ํ๋ฝํ๊ณ , ๊ทธ๋ ์ง ์์ผ๋ฉด ์ ๋ฐ๋๋ค.”
N๋ช ์ ์ง์์๊ฐ ์ฃผ์ด์ง๋ฉด ์์ ์ ๋ฐ์์น์ผ๋ก ์ต๋ ๋ช ๋ช ์ ์ ์๋ฅผ ์ ๋ฐํ ์ ์๋์ง ์์๋ด๋ ํ๋ก๊ทธ๋จ์ ์์ฑํ์ธ์.
์ ๋ ฅ
์ฒซ์งธ ์ค์ ์ง์์์ ์ N(5<=N<=30,000)์ด ์ฃผ์ด์ง๋๋ค.
๋ ๋ฒ์งธ ์ค๋ถํฐ N๋ช ์ ํค์ ๋ชธ๋ฌด๊ฒ ์ ๋ณด๊ฐ ์ฐจ๋ก๋ก ์ฃผ์ด์ง๋๋ค.
๊ฐ์ 1,000,000์ดํ์ ์์ฐ์์ ๋๋ค.
์ถ๋ ฅ
์ฒซ์งธ ์ค์ ์จ๋ฆ ์ ์๋ก ๋ฝํ๋ ์ต๋ ์ธ์์ ์ถ๋ ฅํ์ธ์.
์์ ์ ๋ ฅ 1
5
172 67
183 65
180 70
170 72
181 60
์์ ์ถ๋ ฅ 1
3
ํํธ
์ถ๋ ฅ์ค๋ช
(183, 65), (180, 70), (170, 72) ๊ฐ ์ ๋ฐ๋ฉ๋๋ค. (181, 60)์ (183, 65)๋ณด๋ค ํค์ ๋ชธ๋ฌด๊ฒ ๋ชจ๋ ๋ฎ๊ธฐ ๋๋ฌธ์ ํ๋ฝ์ด๊ณ , (172, 67)์ (180, 70) ๋๋ฌธ์ ํ๋ฝ์ ๋๋ค.
import java.util.*;
class Body implements Comparable<Body>{
public int height;
public int weight;
Body(int height, int weight){
this.height = height;
this.weight = weight;
}
@Override
public int compareTo(Body o){
if(this.height==o.height) {
return o.weight - this.weight;
}else{
return o.height - this.height;
}
}
}
public class Main {
static int[][] array;
public int solution(int n, ArrayList<Body> body) {
int result = 0;
int max = 0;
for(int i=0; i<n; i++){
if(max<body.get(i).weight){
max = body.get(i).weight;
result++;
}
}
return result;
}
public static void main(String[] args) {
Main main = new Main();
Scanner kb = new Scanner(System.in);
int n = kb.nextInt();
ArrayList<Body> body = new ArrayList<>();
for(int i=0; i<n; i++){
Body tmp = new Body(kb.nextInt(), kb.nextInt());
body.add(tmp);
}
Collections.sort(body);
System.out.println(main.solution(n, body));
}
}
'๊ฐ๋ฐ > ์๊ณ ๋ฆฌ์ฆ ๋ฌธ์ ํ์ด JAVA' ์นดํ ๊ณ ๋ฆฌ์ ๋ค๋ฅธ ๊ธ
[JAVA/์ฝ๋ฉํ ์คํธ] ์ต๋ ์์ ์ค์ผ์ฅด(PriorityQueue ์์ฉ๋ฌธ์ ) (0) | 2022.02.15 |
---|---|
[JAVA/์ฝ๋ฉํ ์คํธ] ๊ฒฐํผ์ (0) | 2022.02.14 |
[JAVA/์ฝ๋ฉํ ์คํธ] ์กฐํฉ์ ๊ฒฝ์ฐ์(๋ฉ๋ชจ์ด์ ์ด์ ) (0) | 2022.02.10 |
[JAVA/์ฝ๋ฉํ ์คํธ] ์์ด๊ตฌํ๊ธฐ (0) | 2022.02.08 |
[JAVA/์ฝ๋ฉํ ์คํธ] ๋์ ๊ตํ (0) | 2022.01.30 |