![[BOJ] ๋ฐฑ์ค 23559 ๋ฐฅ (JAVA)](https://img1.daumcdn.net/thumb/R750x0/?scode=mtistory2&fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdna%2FcMzFlX%2FbtsH9MKX8zn%2FAAAAAAAAAAAAAAAAAAAAAHhRrpXbO22iRqCFKk--ZhwsbChn47rYd8Vx7tAG5n0P%2Fimg.png%3Fcredential%3DyqXZFxpELC7KVnFOS48ylbz2pIh7yKj8%26expires%3D1761922799%26allow_ip%3D%26allow_referer%3D%26signature%3DKp3E16hXrSsUt4dm3Y3HTszKPM4%253D)

๐ ๋ฌธ์

๐ฑ ์์ด๋์ด
DP ๋ฌธ์ ์ฒ๋ผ ์๊ธด ๊ทธ๋ฆฌ๋ ๋ฌธ์ .... ๊ฒฐ๊ตญ ์๊ณ ๋ฆฌ์ฆ ๋ถ๋ฅ ๋ณด๊ณ ํ์๋ค..
์ด ๋ฌธ์ ์์ ์๊ฐํด์ผ ํ๋ ๋ถ๋ถ์ 2๊ฐ์ง ์ ๋ ์๋ค.
1. A๋ฉ๋ด, B๋ฉ๋ด๋ฅผ ์ด๋ค ๊ธฐ์ค์ผ๋ก ์ ํํ ๊ฒ ์ธ์ง?
2. 5000์ ๋ฉ๋ด์ธ A๋ฉ๋ด๋ฅผ ๋์ด ๋ถ์กฑํด ์ ํ์ ํ์ง ๋ชปํ ๋.
[1๋ฒ ๊ฒฝ์ฐ]
๋ค๋ฅธ ๊ทธ๋ฆฌ๋ ๋ฌธ์ ๋ ์ ๋ ฌ ์ ๋ฐ์ดํฐ์์ ํ๋์ ๊ธฐ์ค์ ์ก์ ์ ๋ ฌํ๋ ๊ฒฝ์ฐ๊ฐ ๋ง๋ค.
์ ๋ฌธ์ ๋ ์ ๋ ฌ์ ๊ธฐ์ค์ (A๋ฉ๋ด - B๋ฉ๋ด)์ ์ฐจ์ด๋ฅผ ๊ธฐ์ค์ผ๋ก ๋ด๋ฆผ์ฐจ์์ผ๋ก ์ ๋ ฌํ๋ค
ex) 1000 999 ๋ณด๋ค 10 1 ์ด ์ฐ์ ์์๊ฐ ๋์ด์ผ ํ๋ค.
[2๋ฒ ๊ฒฝ์ฐ]
1๋ฒ ๊ฒฝ์ฐ์์ 5์ฒ ์ ๋ฉ๋ด๋ฅผ ์ ํํ๋ค ๋ณด๋ฉด ๋๋จธ์ง ๋ ์ ๋ฐฅ์ ๋จน์ง ๋ชปํ๋ ๊ฒฝ์ฐ๊ฐ ์๊ธธ ์๋ ์๋ค.
์ ๊ฒฝ์ฐ๋ฅผ ๋ฐฉ์งํ๊ธฐ ์ํด M - 5000 >= ๋จ์ ์์ * 1000์ผ๋ก ์ ์ํฉ์ ๋ฐฉ์งํ ์ ์๋ค.
๐ฑ ์ฝ๋ ๋ฐ ํ์ด
public class Main { | |
public static class node implements Comparable<node> { | |
int a, b; | |
public node(int a, int b) { | |
this.a = a; | |
this.b = b; | |
} | |
@Override | |
public int compareTo(node o) { | |
// A,B ๋ฉ๋ด์ ์ฐจ์ด๊ฐ ํฐ ์์๋ก ์ ๋ ฌ. | |
return Math.abs(o.a - o.b) - Math.abs(a - b); | |
} | |
} | |
public static void main(String[] args) throws IOException { | |
BufferedReader br = new BufferedReader(new InputStreamReader(System.in)); | |
PriorityQueue<node> pq = new PriorityQueue<node>(); | |
StringTokenizer st; | |
st = new StringTokenizer(br.readLine()); | |
int N = Integer.parseInt(st.nextToken()); | |
int M = Integer.parseInt(st.nextToken()); | |
int answer = 0; | |
for (int i = 0; i < N; i++) { | |
st = new StringTokenizer(br.readLine()); | |
int a = Integer.parseInt(st.nextToken()); | |
int b = Integer.parseInt(st.nextToken()); | |
pq.offer(new node(a, b)); | |
} | |
while (!pq.isEmpty()) { | |
node now = pq.poll(); | |
// ํ์ฌ 5์ฒ์ ๋ฉ๋ด๋ฅผ ์ ํ ํด๋ -> ๋ง์ง๋ง ๋ ๊น์ง ๋ฐฅ์ ์ฌ ๋จน์ ์ ์๋์ง ํ๋จ. | |
if (M - 5000 >= pq.size() * 1000 && now.a > now.b) { | |
M -= 5000; | |
answer += now.a; | |
} else { | |
// B ๋ฉ๋ด๊ฐ ๋ ํฌ๋ค๋ฉด ๋จน๊ธฐ. | |
M -= 1000; | |
answer += now.b; | |
} | |
} | |
System.out.println(answer); | |
} | |
} |
๐ฑ ๋๋ ์
DP, Greedy๋ ๋ณผ ๋๋ง๋ค ํท๊ฐ๋ฆฐ๋ค ์ฌ๋ฌ ๋ฌธ์ ๋ฅผ ํ์ด๋ณด๋ฉด์ ๋๋์ ์ตํ๋ ๊ฒ ์ค์ํ ๊ฒ ๊ฐ๋ค.
'Algorithm > - Baekjoon' ์นดํ ๊ณ ๋ฆฌ์ ๋ค๋ฅธ ๊ธ
[BOJ] ๋ฐฑ์ค 17472 ๋ค๋ฆฌ ๋ง๋ค๊ธฐ 2 (JAVA) (0) | 2024.07.07 |
---|---|
[BOJ] ๋ฐฑ์ค 11376 ์ดํ๊ฐํธ 2 (JAVA) (0) | 2024.06.28 |
[BOJ] ๋ฐฑ์ค 19577 ์ํ์ ์ฌ๋ฐ์ด (JAVA) (0) | 2024.05.26 |
[BOJ] ๋ฐฑ์ค 16496 ํฐ ์ ๋ง๋ค๊ธฐ (JAVA) (0) | 2024.05.23 |
[BOJ] ๋ฐฑ์ค 17267 ์๋จ์ (JAVA) (0) | 2024.05.14 |
๋๋ง์ ๊ฐ๋ฐ ๋ฐ์ดํฐ๋ฒ ์ด์ค!
ํฌ์คํ ์ด ์ข์๋ค๋ฉด "์ข์์โค๏ธ" ๋๋ "๊ตฌ๋ ๐๐ป" ํด์ฃผ์ธ์!