๋ฌธ์ (์ถ์ฒ: https://www.acmicpc.net/problem/9037)
< The candy war >
๋ฌธ์ ํ์ด
์ฌํ์ ์ ๋ฐ์ ์ค๋ฅธ์ชฝ์ ๋๊ฒจ์ฃผ๊ณ ํ์๊ฐ๋ผ๋ฉด 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 _9037_ { // The candy war
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 T = Integer.parseInt(bf.readLine());
for (int i = 0; i < T; i++) {
int N = Integer.parseInt(bf.readLine());
int cnt = 0;
int arr[] = new int[N];
int temp[] = new int[N];
st = new StringTokenizer(bf.readLine());
for (int j = 0; j < N; j++) {
arr[j] = Integer.parseInt(st.nextToken());
if (arr[j] % 2 != 0) {
arr[j] += 1;
}
}
boolean flag = false;
for (int j = 0; j < N - 1; j++) {
if (arr[j] != arr[j + 1]) {
flag = true;
break;
}
}
if (!flag) {
bw.write(cnt + "\n");
} else {
while (true) {
flag = false;
for (int j = 0; j < N; j++) {
arr[j] /= 2;
temp[j] = arr[j];
}
for (int j = 0; j < N; j++) {
if (j + 1 == N) {
arr[0] += temp[j];
if (arr[0] % 2 != 0) {
arr[0] += 1;
}
} else {
arr[j + 1] += temp[j];
if (arr[j + 1] % 2 != 0) {
arr[j + 1] += 1;
}
}
}
cnt += 1;
for (int j = 0; j < N - 1; j++) {
if (arr[j] != arr[j + 1]) {
flag = true;
break;
}
}
if (!flag) {
bw.write(cnt + "\n");
break;
}
}
}
}
bw.flush();
}
}
๋ณ์)
T : ํ ์คํธ ์ผ์ด์ค ๊ฐ์
N : ์์ด์ ์ธ์์
cnt : ์ํ
arr : ๊ฐ ์์ด๊ฐ ๊ฐ์ง๋ ์ฌํ ์
temp : ๊ฐ ์์ด์ ์ฌํ ์ ๋ฐ ๊ฐ
flag : ๋ชจ๋ ๊ฐ์ ์ฌํ์ธ์ง ์ฌ๋ถ
ํ ์คํธ ์ผ์ด์ค ๊ฐ์๋ฅผ ์ ๋ ฅ๋ฐ๋๋ค. ํ ์คํธ ์ผ์ด์ค ์๋งํผ ๋ค์ ๊ณผ์ ์ ๋ฐ๋ณตํ๋ค.
1) ์์ด์ ์ธ์์ ์ ๋ ฅ๋ฐ์
2) ์์ด์ ์ธ์์๋งํผ ์ฌํ์ ๊ฐ์ ์ ๋ ฅ๋ฐ์ arr์ ์ ์ฅ
3) arr์ ์ ์ฅ๋ ๊ฐ์ด ํ์๊ฐ๋ผ๋ฉด 1 ๋ํจ
4) ๋ชจ๋ ์ฌํ์ ๊ฐ์ด ๊ฐ์ ๊ฐ์ธ์ง ํ์ธ ํ ๊ฐ์ ๊ฐ์ด๋ผ๋ฉด 0 ์ถ๋ ฅ ํ 1)๋ก ์ด๋
5) ๋ชจ๋ ์ฌํ์ ๊ฐ์ด ๊ฐ์์ง ๋๊น์ง ์ฌํ์ ๊ฐ์๋ฅผ ๋ฐ์ผ๋ก ์ ์ฅ ํ ์ ๋ฐ์ ์ค๋ฅธ์ชฝ์ ๋๊ฒจ์ค. ๊ฐ์ง ์ฌํ์ ์๊ฐ ํ์๊ฐ๋ผ๋ฉด 1 ๋ํจ. ๋ชจ๋ ์ฌํ์ ๊ฐ์ด ๊ฐ์์ก๋ค๋ฉด cnt ์ถ๋ ฅ ํ 1)๋ก ์ด๋
'๐Algorithm > ๐ฅBaekjoon' ์นดํ ๊ณ ๋ฆฌ์ ๋ค๋ฅธ ๊ธ
[Baekjoon] 6324_URLs (0) | 2024.09.04 |
---|---|
[Baekjoon] 25193_๊ณฐ๊ณฐ์ด์ ์๋จ ๊ด๋ฆฌ (2) | 2024.09.03 |
[Baekjoon] 2671_์ ์ํจ์๋ณ (0) | 2024.08.30 |
[Baekjoon] 1013_Contact (0) | 2024.08.29 |
[Baekjoon] 9996_ํ๊ตญ์ด ๊ทธ๋ฆฌ์ธ ๋ ์๋ฒ์ ์ ์ํ์ง (0) | 2024.08.28 |