๐ ๋ฌธ์ ๋งํฌ
https://www.acmicpc.net/problem/11279
11279๋ฒ: ์ต๋ ํ
์ฒซ์งธ ์ค์ ์ฐ์ฐ์ ๊ฐ์ N(1 ≤ N ≤ 100,000)์ด ์ฃผ์ด์ง๋ค. ๋ค์ N๊ฐ์ ์ค์๋ ์ฐ์ฐ์ ๋ํ ์ ๋ณด๋ฅผ ๋ํ๋ด๋ ์ ์ x๊ฐ ์ฃผ์ด์ง๋ค. ๋ง์ฝ x๊ฐ ์์ฐ์๋ผ๋ฉด ๋ฐฐ์ด์ x๋ผ๋ ๊ฐ์ ๋ฃ๋(์ถ๊ฐํ๋) ์ฐ์ฐ์ด๊ณ , x๊ฐ 0
www.acmicpc.net
โธ ๋ฌธ์
๋๋ฆฌ ์ ์๋ ค์ง ์๋ฃ๊ตฌ์กฐ ์ค ์ต๋ ํ์ด ์๋ค. ์ต๋ ํ์ ์ด์ฉํ์ฌ ๋ค์๊ณผ ๊ฐ์ ์ฐ์ฐ์ ์ง์ํ๋ ํ๋ก๊ทธ๋จ์ ์์ฑํ์์ค.
- ๋ฐฐ์ด์ ์์ฐ์ x๋ฅผ ๋ฃ๋๋ค.
- ๋ฐฐ์ด์์ ๊ฐ์ฅ ํฐ ๊ฐ์ ์ถ๋ ฅํ๊ณ , ๊ทธ ๊ฐ์ ๋ฐฐ์ด์์ ์ ๊ฑฐํ๋ค.
ํ๋ก๊ทธ๋จ์ ์ฒ์์ ๋น์ด์๋ ๋ฐฐ์ด์์ ์์ํ๊ฒ ๋๋ค.
โธ ์ ๋ ฅ
์ฒซ์งธ ์ค์ ์ฐ์ฐ์ ๊ฐ์ N(1 ≤ N ≤ 100,000)์ด ์ฃผ์ด์ง๋ค. ๋ค์ N๊ฐ์ ์ค์๋ ์ฐ์ฐ์ ๋ํ ์ ๋ณด๋ฅผ ๋ํ๋ด๋ ์ ์ x๊ฐ ์ฃผ์ด์ง๋ค. ๋ง์ฝ x๊ฐ ์์ฐ์๋ผ๋ฉด ๋ฐฐ์ด์ x๋ผ๋ ๊ฐ์ ๋ฃ๋(์ถ๊ฐํ๋) ์ฐ์ฐ์ด๊ณ , x๊ฐ 0์ด๋ผ๋ฉด ๋ฐฐ์ด์์ ๊ฐ์ฅ ํฐ ๊ฐ์ ์ถ๋ ฅํ๊ณ ๊ทธ ๊ฐ์ ๋ฐฐ์ด์์ ์ ๊ฑฐํ๋ ๊ฒฝ์ฐ์ด๋ค. ์ ๋ ฅ๋๋ ์์ฐ์๋ 231๋ณด๋ค ์๋ค.
โธ ์ถ๋ ฅ
์ ๋ ฅ์์ 0์ด ์ฃผ์ด์ง ํ์๋งํผ ๋ต์ ์ถ๋ ฅํ๋ค. ๋ง์ฝ ๋ฐฐ์ด์ด ๋น์ด ์๋ ๊ฒฝ์ฐ์ธ๋ฐ ๊ฐ์ฅ ํฐ ๊ฐ์ ์ถ๋ ฅํ๋ผ๊ณ ํ ๊ฒฝ์ฐ์๋ 0์ ์ถ๋ ฅํ๋ฉด ๋๋ค.
๐ ๋ฌธ์ ์ ๋ณด
- ๐ฅ ๋ฌธ์ ๋ ๋ฒจ : ์ค๋ฒ 2
- ๐ ๋ฌธ์ ์ ํ : ์๋ฃ๊ตฌ์กฐ, ์ฐ์ ์์ ํ
- ๐ฌ ํ์ด ์ธ์ด : JAVA
๐ค ๋ฌธ์ ํ์ด
- ์ฐ์ ์์ ํ(Priority Queue)๋ฅผ ํ์ฉํ์ฌ ๋ฌธ์ ๋ฅผ ํด๊ฒฐํ๋ค.
- ์ฐ์ ์์ ํ๋ ๊ธฐ๋ณธ์ ์ผ๋ก ์ค๋ฆ์ฐจ์ ์ ๋ ฌ์ด๊ธฐ ๋๋ฌธ์, Collections.reverseOrder()๋ฅผ ํ์ฉํ์ฌ ๋ด๋ฆผ์ฐจ์ ์ ๋ ฌ๋ก ๋ณ๊ฒฝํด ์ค๋ค.
- PriorityQueue<Integer> pq = new PriorityQueue<>(Collections.reverseOrder());
- ์์ ํํ๋ก ์ฌ์ฉํด ์ฃผ๋ฉด ํฐ ์ซ์๊ฐ ์ฐ์ ์์๊ฐ ๋๋ฏ๋ก, ์ต๋ ํ์ ๊ตฌํํ ์ ์๋ค.
โ ์ต์ข ์ฝ๋
๋ฉ๋ชจ๋ฆฌ : 25984KB
์๊ฐ : 280ms
import java.io.BufferedReader;
import java.io.IOException;
import java.io.InputStreamReader;
import java.util.Collections;
import java.util.PriorityQueue;
public class Main {
public static void main(String[] args) throws IOException {
BufferedReader br = new BufferedReader(new InputStreamReader(System.in));
StringBuilder sb = new StringBuilder();
int n = Integer.parseInt(br.readLine()); // ์ฐ์ฐ์ ๊ฐ์
PriorityQueue<Integer> pq = new PriorityQueue<>(Collections.reverseOrder()); // ๋ด๋ฆผ์ฐจ์ ๊ธฐ์ค
for (int i = 0; i < n; i++) {
int num = Integer.parseInt(br.readLine());
if (num == 0) { // ๋ค์ด์ค๋ ๊ฐ์ด 0์ด๋ผ๋ฉด
if (pq.isEmpty()) { // ๋ฐฐ์ด์ด ๋น์ด์๋ ๊ฒฝ์ฐ๋ผ๋ฉด
sb.append(0).append("\n"); // 0 ์ถ๋ ฅ
} else { // ๋ฐฐ์ด์์ ๊ฐ์ฅ ํฐ ๊ฐ ์ถ๋ ฅํ๊ณ ๊ทธ ๊ฐ ์ ๊ฑฐ
sb.append(pq.poll()).append("\n");
}
} else { // ๋ค์ด์ค๋ ๊ฐ์ด 0์ด ์๋๋ผ๋ฉด
pq.offer(num); // ๋ฐฐ์ด์ ๊ฐ ์ถ๊ฐ
}
}
System.out.println(sb.toString());
}
}
๐ ํจ๊ป ํ์ด๋ณด๋ฉด ์ข์ ๋ฐฑ์ค ๋ฌธ์
'Algorithm > BOJ' ์นดํ ๊ณ ๋ฆฌ์ ๋ค๋ฅธ ๊ธ
[Boj_1504] ํน์ ํ ์ต๋จ ๊ฒฝ๋ก (0) | 2023.11.21 |
---|---|
[Boj_18352] ํน์ ๊ฑฐ๋ฆฌ์ ๋์ ์ฐพ๊ธฐ (1) | 2023.11.15 |
[Boj_11286] ์ ๋๊ฐ ํ (0) | 2023.11.13 |
[Boj_1927] ์ต์ ํ (0) | 2023.11.13 |
[Boj_9251] LCS (1) | 2023.11.10 |