๋ฌธ์ (์ถ์ฒ: https://www.acmicpc.net/problem/4962)
< Next Mayor >
๋ฌธ์ ํ์ด
๋ค์ ๊ท์น์ ๋ฐ๋ผ ์น์๋ฅผ ํ๋ณํ๋ค.
1. ์๊ฐ์ด 1๊ฐ ์ด์ ์๋ค๋ฉด -> ์๊ฐ์ 1๊ฐ ๊บผ๋ด์ ๋ณด์
2. ์๊ฐ์ด ์๋ค๋ฉด -> ์์ ์ด ๋ณด์ ํ ๋ชจ๋ ์๊ฐ์ ๋ค์ ๋ฃ๊ธฐ
=> ๋ง์ง๋ง ์๊ฐ 1๊ฐ๋ฅผ ๊บผ๋ผ ๋, ๋ค๋ฅธ ๋ชจ๋ ํ๋ณด์์ ์์ ์๊ฐ์ด ํ๋๋ ์๋ค๋ฉด ์น์๊ฐ ๋จ
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.StringTokenizer;
public class _4962_ { // Next Mayor
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;
String str = "";
while (!(str = bf.readLine()).equals("0 0")) {
st = new StringTokenizer(str);
int n = Integer.parseInt(st.nextToken());
int p = Integer.parseInt(st.nextToken());
int arr[] = new int[n];
int result=-1;
while (true) {
for (int i = 0; i < n; i++) {
boolean check = false;
if (p > 0) {
arr[i] += 1;
p -= 1;
if (p == 0) {
for (int j = 0; j < n; j++) {
if (i != j && arr[j] != 0) {
check = true;
break;
}
}
if (!check) {
result=i;
break;
}
}
} else {
p += arr[i];
arr[i] = 0;
}
}
if(result!=-1) {
break;
}
}
bw.write(result+"\n");
}
bw.flush();
}
}
๋ณ์)
str : ์ ๋ ฅ๊ฐ
n, p : ํ๋ณด์ ์, ์๊ฐ ์
arr : ๊ฐ ํ๋ณด์๊ฐ ๊ฐ์ง๊ณ ์๋ ์๊ฐ ์
result : ์น์
check : ์น๋ฆฌ ์ฌ๋ถ
"0 0"์ด ์ ๋ ฅ๋๊ธฐ ์ ๊น์ง ๋ค์ ๊ณผ์ ์ ๋ฐ๋ณตํ๋ค.
1) ํ๋ณด์ ์์ ์๊ฐ ์ ์ ๋ ฅ
2) ์น์๊ฐ ํ๋ณ๋๊ธฐ ์ ๊น์ง ๋ค์ ๊ณผ์ ์ ๋ฐ๋ณตํ๋ค.
2-1) n๋ช ์ด ๋์๊ฐ๋ฉฐ ์๊ฐ์ด ๋จ์์๋ค๋ฉด ์๊ฐ์ ๊ฐ์ ธ๊ฐ๋ค. ์ด๋, ๋ง์ง๋ง ์๊ฐ์ด๋ผ๋ฉด ๋ค๋ฅธ ํ๋ณด์๋ฅผ ๋ณด๊ณ ์๊ฐ์ ๊ฐ์ง๊ณ ์๋์ง ํ๋ณํ๋ค. ๋ค๋ฅธ ํ๋ณด์๋ค์ด ํ ๋ช ๋ ์๊ฐ์ ๊ฐ์ง๊ณ ์์ง ์๋ค๋ฉด ์น์์ด๋ฏ๋ก ์ข ๋ฃํ๋ค.
2-2) ์๊ฐ์ด ๋จ์์์ง ์๋ค๋ฉด ์์ ์ด ๋ณด์ ํ ๋ชจ๋ ์๊ฐ์ ๋ฃ๋๋ค.
์ต์ข ์น์๋ฅผ ์ถ๋ ฅํ๋ค.
'๐Algorithm > ๐ฅBaekjoon' ์นดํ ๊ณ ๋ฆฌ์ ๋ค๋ฅธ ๊ธ
[Baekjoon] 7863_Very Simple Problem (0) | 2025.10.01 |
---|---|
[Baekjoon] 20680_Birds Rituals (0) | 2025.09.29 |
[Baekjoon] 18206_Soft Passwords (0) | 2025.09.26 |
[Baekjoon] 8978_VLAK (0) | 2025.09.25 |
[Baekjoon] 31023_Hit Song (0) | 2025.09.24 |