๋ฌธ์ (์ถ์ฒ: https://www.acmicpc.net/problem/11971)
< ์๋์๋ฐ >
๋ฌธ์ ํ์ด
๋๋ก์ ๊ตฌ๊ฐ๊ณผ ์ ํ์๋์ ์ฐ์ ์ด๊ฐ ๋ฌ๋ฆฐ ๊ตฌ๊ฐ๊ณผ ๋๋ก ๊ตฌ๊ฐ์ ๋น๊ตํ์ฌ ์๋์๋ฐ์ ์ฐพ๋๋ค.
my solution (Java)
import java.io.BufferedReader;
import java.io.IOException;
import java.io.InputStreamReader;
import java.util.LinkedList;
import java.util.Queue;
import java.util.StringTokenizer;
public class _11971_ { // ์๋ ์๋ฐ
public static void main(String[] args) throws IOException {
BufferedReader bf = new BufferedReader(new InputStreamReader(System.in));
StringTokenizer st = new StringTokenizer(bf.readLine());
int n = Integer.parseInt(st.nextToken());
int m = Integer.parseInt(st.nextToken());
Queue<int[]> queue = new LinkedList<>();
for (int i = 0; i < n; i++) {
st = new StringTokenizer(bf.readLine());
queue.add(new int[] { Integer.parseInt(st.nextToken()), Integer.parseInt(st.nextToken()) });
}
int result = 0;
for (int i = 0; i < m; i++) {
st = new StringTokenizer(bf.readLine());
int d = Integer.parseInt(st.nextToken());
int s = Integer.parseInt(st.nextToken());
while (d > 0) {
if (queue.peek()[1] < s) {
result = Math.max(result, s - queue.peek()[1]);
}
if (queue.peek()[0] > d) {
queue.peek()[0] -= d;
break;
} else {
d -= queue.poll()[0];
}
}
}
System.out.println(result);
}
}
๋ณ์)
n, m : ๋๋ก ๊ตฌ๊ฐ ์, ๋ฌ๋ฆฐ ๊ตฌ๊ฐ ์
queue : Queue <int []>
result : ์๋ ์๋ฐํ ์ต๋๊ฐ
d, s : ๋ฌ๋ฆฐ ๊ตฌ๊ฐ์ ๊ธธ์ด, ํด๋น ๊ตฌ๊ฐ์์ ๋ฌ๋ฆฐ ์๋
๋๋ก ๊ตฌ๊ฐ ์์ ๋ฌ๋ฆฐ ๊ตฌ๊ฐ ์๋ฅผ ์ ๋ ฅ๋ฐ๋๋ค. ๋๋ก ๊ตฌ๊ฐ ๊ธธ์ด์ ํด๋น ๊ตฌ๊ฐ์ ์ ํ ์๋๋ฅผ ์ ๋ ฅ๋ฐ์ queue์ ์ ์ฅํ๋ค. ๋ฌ๋ฆฐ ๊ตฌ๊ฐ ๊ธธ์ด์ ํด๋น ๊ตฌ๊ฐ์์ ๋ฌ๋ฆฐ ์๋๋ฅผ ์ ๋ ฅ๋ฐ์ ๋ฌ๋ฆฐ ๊ตฌ๊ฐ์ ๊ธธ์ด๊ฐ 0๋ณด๋ค ํด ๋ ๋ค์ ๊ณผ์ ์ ๊ณ์ํด์ ๋ฐ๋ณตํ๋ค.
1) queue์ peek ๊ฐ์ ์ ํ์๋๊ฐ ๋ฌ๋ฆฐ ์๋๋ณด๋ค ์๋ค๋ฉด ์๋ ์๋ฐํ ๊ฒ์ด๋ฏ๋ก result๋ฅผ ์ ๋ฐ์ดํธํ๋ค.
2) queue์ peek ๊ฐ์ ๋๋ก ๊ตฌ๊ฐ์ด ๋ฌ๋ฆฐ ๊ตฌ๊ฐ ๊ธธ์ด๋ณด๋ค ํฌ๋ค๋ฉด ๋ฌ๋ฆฐ ๊ตฌ๊ฐ๋งํผ ๊ฐ์ ๋นผ์ค ํ ๋ค์ ๋ฌ๋ฆฐ ๊ตฌ๊ฐ์ ์ ๋ ฅ๋ฐ๊ธฐ ์ํด ์ข ๋ฃํ๋ค.
3) queue์ peek ๊ฐ์ ๋๋ก ๊ตฌ๊ฐ์ด ๋ฌ๋ฆฐ ๊ตฌ๊ฐ ๊ธธ์ด๋ณด๋ค ์๋ค๋ฉด ๋ฌ๋ฆฐ ๊ตฌ๊ฐ ๊ธธ์ด์์ queue์์ poll ํ ๊ฐ์ ๋๋ก ๊ตฌ๊ฐ์ ๋นผ์ค๋ค.
์ต์ข ์๋ ์๋ฐํ ์ต๋๊ฐ์ธ result๋ฅผ ์ถ๋ ฅํ๋ค.
'๐Algorithm > ๐ฅBaekjoon' ์นดํ ๊ณ ๋ฆฌ์ ๋ค๋ฅธ ๊ธ
[Baekjoon] 25325_ํ์ ์ธ๊ธฐ๋ ์ธก์ (0) | 2024.06.11 |
---|---|
[Baekjoon] 15702_์ค๊ฐ๊ณ ์ฌ ์ฑ์ (0) | 2024.06.10 |
[Baekjoon] 1384_๋ฉ์์ง (0) | 2024.06.06 |
[Baekjoon] 11008_๋ณต๋ถ์ ๋ฌ์ธ (0) | 2024.06.05 |
[Baekjoon] 11292_ํค ํฐ ์ฌ๋ (0) | 2024.06.04 |