๋ฌธ์ (์ถ์ฒ: https://www.acmicpc.net/problem/15287)
< Easy Quest >
๋ฌธ์ ํ์ด
0 ์ด์์ผ ๋์ ๊ฐ์๋ฅผ ์ ์ฅํด ๋๊ณ ์์์ผ ๋ |์์| ๋๋ 0์ ํ์ฉํด์ ์ ์ ๋ฌผ๋ฆฌ์น๋ค. ์ด๋ 0์ ์ด๋ค ํ์ ์ ์์ดํ ์ ์์ฒญํ๋์ง ์ ์ฅํด ๋๋ค.
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.ArrayList;
import java.util.StringTokenizer;
public class _15287_ { // Easy Quest
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;
int n = Integer.parseInt(bf.readLine());
int arr[] = new int[1001];
ArrayList<Integer> result = new ArrayList<>();
boolean flag = false;
st = new StringTokenizer(bf.readLine());
for (int i = 0; i < n; i++) {
int num = Integer.parseInt(st.nextToken());
if (num >= 0) {
arr[num] += 1;
} else {
if (arr[-num] > 0) {
arr[-num] -= 1;
} else if (arr[0] > 0) {
arr[0] -= 1;
result.add(-num);
} else {
flag = true;
break;
}
}
}
if (flag) {
bw.write("No");
} else {
bw.write("Yes\n");
for (int x : result) {
bw.write(x + " ");
}
while (arr[0] > 0) {
arr[0] -= 1;
bw.write("1 ");
}
}
bw.flush();
}
}
๋ณ์)
n : ์ ์ ๊ฐ์
arr : 0 ์ด์์ ๊ฐ ๊ฐ์
result : ์ ๋์ฝ ๊ฐ
flag : ์ ๋ฌผ๋ฆฌ์นจ ์ฌ๋ถ
num : ์ ์
์ ์ ๊ฐ์๋ฅผ ์ ๋ ฅ๋ฐ์ ๋ค ์ ์ ๊ฐ์๋งํผ ์ ์๋ฅผ ์ ๋ ฅ๋ฐ๋๋ค. 0 ์ด์์ด๋ผ๋ฉด ๋ฐฐ์ด์ +1 ํ๋ค. ์์๋ผ๋ฉด ๋จผ์ ๋ฐฐ์ด์ (-์ ์) ๊ฐ์ด ์๋์ง ํ์ธํ๋ค. ๊ฐ์ด ์๋ค๋ฉด -1 ํ๊ณ ๊ฐ์ด ์๋ค๋ฉด arr[0] ๊ฐ์ด ์๋์ง ํ์ธํ๋ค. arr[0] ๊ฐ์ด ์๋ค๋ฉด -1 ํ๊ณ result์ (-์ ์)๋ฅผ ์ ์ฅํ๋ค. ๋ ๋ค ๊ฐ์ด ์๋ค๋ฉด ๋ชจ๋ ์ ์ ๋ฌผ๋ฆฌ์น๋ ๊ฒ์ด ๋ถ๊ฐ๋ฅํ๋ฏ๋ก No๋ฅผ ์ถ๋ ฅํ๋ค. ๋ชจ๋ ์ ์ ๋ฌผ๋ฆฌ์น๋ ๊ฒ์ด ๊ฐ๋ฅํ๋ค๋ฉด Yes๋ฅผ ์ถ๋ ฅํ๊ณ result ๊ฐ๋ค๋ ์ถ๋ ฅํ๋ค. ์ด๋, ์์ง arr[0] ๊ฐ์ด 0๋ณด๋ค ํฌ๋ค๋ฉด ๊ทธ ๊ฐ๋งํผ 1์ ์ถ๋ ฅํ๋ค.

'๐Algorithm > ๐ฅBaekjoon' ์นดํ ๊ณ ๋ฆฌ์ ๋ค๋ฅธ ๊ธ
| [Baekjoon] 30337_Linas ir mandarinai (0) | 2026.04.01 |
|---|---|
| [Baekjoon] 15407_How to Eat at a Buffet (0) | 2026.03.31 |
| [Baekjoon] 9834_Card (0) | 2026.03.25 |
| [Baekjoon] 11270_Disastrous Downtime (0) | 2026.03.24 |
| [Baekjoon] 9780_Range Sum Query (0) | 2026.03.23 |