๋ฌธ์ (์ถ์ฒ: https://www.acmicpc.net/problem/19638)
< ์ผํฐ์ ๋ง๋ฒ์ ๋ฟ ๋ง์น >
๋ฌธ์ ํ์ด
์ฐ์ ์์ ํ๋ฅผ ๋ด๋ฆผ ์ฐจ์์ผ๋ก ์ด๊ธฐํํ์ฌ ์ ์ผ ํฐ ๊ฑฐ์ธ์ ํค๋ฅผ ๋ฟ ๋ง์น ํ์ ์ ํ๋งํผ ๋ฐ์ผ๋ก ์ค์ฌ์ค๋ค.
my solution (Java)
import java.io.BufferedReader;
import java.io.BufferedWriter;
import java.io.IOException;
import java.io.InputStreamReader;
import java.io.OutputStreamWriter;
import java.util.Collections;
import java.util.PriorityQueue;
import java.util.StringTokenizer;
public class _19638_ { // ์ผํฐ์ ๋ง๋ฒ์ ๋ฟ
๋ง์น
public static void main(String[] args) throws IOException {
BufferedReader bf = new BufferedReader(new InputStreamReader(System.in));
BufferedWriter bw = new BufferedWriter(new OutputStreamWriter(System.out));
StringTokenizer st = new StringTokenizer(bf.readLine());
int n = Integer.parseInt(st.nextToken());
int h = Integer.parseInt(st.nextToken());
int t = Integer.parseInt(st.nextToken());
PriorityQueue<Integer> queue = new PriorityQueue<>(Collections.reverseOrder());
for (int i = 0; i < n; i++) {
queue.add(Integer.parseInt(bf.readLine()));
}
boolean flag = false;
for (int i = 0; i < t; i++) {
if (queue.peek() < h) {
bw.write("YES\n");
bw.write(Integer.toString(i));
flag = true;
break;
}
if (queue.peek() == 1)
break;
int num = queue.poll();
queue.add(num / 2);
}
if (!flag) {
if (queue.peek() < h) {
bw.write("YES\n");
bw.write(Integer.toString(t));
} else {
bw.write("NO\n");
bw.write(Integer.toString(queue.peek()));
}
}
bw.flush();
}
}
Main
๋ณ์)
n : ์ธ๊ตฌ์
h : ์ผํฐ์ ํค
t : ๋ง๋ฒ์ ๋ฟ ๋ง์น์ ํ์ ์ ํ
queue : ๋ด๋ฆผ์ฐจ์ ์ฐ์ ์์ ํ
- ์ธ๊ตฌ์(n), ์ผํฐ์ ํค(h), ๋ง๋ฒ์ ๋ฟ ๋ง์น์ ํ์ ์ ํ(t) ์ ๋ ฅ
- ๊ฑฐ์ธ์ ํค๋ฅผ ์ ๋ ฅ๋ฐ์ queue์ ์ ์ฅ
- ๋ง๋ฒ์ ๋ฟ ๋ง์น์ ํ์ ์ ํ(t)๋งํผ ๋ฟ ๋ง์น ์ฌ์ฉ
1) queue์ ๋งจ ์์ ์๋ ๊ฐ์ด h๋ณด๋ค ์๋ค๋ฉด ๋ชจ๋ ๊ฑฐ์ธ์ด ์ผํฐ๋ณด๋ค ํค๊ฐ ์๋ค๋ ๋ป์ด๋ฏ๋ก "YES"์ ๋ฟ ๋ง์น๋ฅผ ์ต์๋ก ์ฌ์ฉํ ํ์ ์ถ๋ ฅ
2) queue์ ๋งจ ์์ ์๋ ๊ฐ์ด 1์ด๋ผ๋ฉด ๋ ์ด์ ์ค์ด๋ค์ง ์์ผ๋ฏ๋ก ์ข ๋ฃ
3) queue์์ ๊ฐ์ ๊บผ๋ด์ ๊ฐ์ ๋ฐ์ผ๋ก ์ค์ฌ queue์ ์ ์ฅ
- ๋ฟ ๋ง์น๋ฅผ ๋ค ์ฌ์ฉํ๊ณ ๋ ํ์ ์ผํฐ๋ณด๋ค ํค๊ฐ ์๋ค๋ฉด "YES"์ ๋ฟ ๋ง์น๋ฅผ ์ต์๋ก ์ฌ์ฉํ ํ์ ์ถ๋ ฅ
์ผํฐ๋ณด๋ค ํค๊ฐ ํฌ๋ค๋ฉด "NO"์ ๊ฐ์ฅ ํค ํฐ ๊ฑฐ์ธ์ ํค ์ถ๋ ฅ
'๐Algorithm > ๐ฅBaekjoon' ์นดํ ๊ณ ๋ฆฌ์ ๋ค๋ฅธ ๊ธ
[Baekjoon] 14235_ํฌ๋ฆฌ์ค๋ง์ค ์ ๋ฌผ (0) | 2023.07.19 |
---|---|
[Baekjoon] 23757_์์ด๋ค๊ณผ ์ ๋ฌผ ์์ (0) | 2023.07.18 |
[Baekjoon] 13975_ํ์ผ ํฉ์น๊ธฐ 3 (0) | 2023.07.14 |
[Baekjoon] 2075_N๋ฒ์งธ ํฐ ์ (0) | 2023.07.13 |
[Baekjoon] 5525_IOIOI (0) | 2023.07.11 |