728x90
๐๋ฌธ์ ๋งํฌ
20055๋ฒ: ์ปจ๋ฒ ์ด์ด ๋ฒจํธ ์์ ๋ก๋ด
๐ป์ฝ๋
import java.io.BufferedReader;
import java.io.IOException;
import java.io.InputStreamReader;
import java.util.StringTokenizer;
public class Main {
public static void main(String[] args) throws IOException {
BufferedReader br = new BufferedReader(new InputStreamReader(System.in));
StringTokenizer st = new StringTokenizer(br.readLine());
int N = Integer.parseInt(st.nextToken());
int K = Integer.parseInt(st.nextToken());
int[] belt = new int[N * 2];
st = new StringTokenizer(br.readLine());
for (int i = 0; i < N * 2; i++) {
belt[i] = Integer.parseInt(st.nextToken());
}
int step = 0;
boolean[] robot = new boolean[N];
while (true) {
// 4. ๋ด๊ตฌ๋๊ฐ 0์ธ ์นธ์ ๊ฐ์๊ฐ K๊ฐ ์ด์์ด๋ผ๋ฉด ๊ณผ์ ์ ์ข
๋ฃํ๋ค.
int zeroCount = 0;
for (int i = 0; i < 2 * N; i++) {
if (belt[i] == 0) zeroCount++;
}
if (zeroCount >= K) break;
// 1. ๋ฒจํธ๊ฐ ๊ฐ ์นธ ์์ ์๋ ๋ก๋ด๊ณผ ํจ๊ป ํ ์นธ ํ์ ํ๋ค.
// 1-1. ๋ฒจํธ ํ์
int temp = belt[N * 2 - 1];
for (int i = N * 2 - 1; i > 0; i--) {
belt[i] = belt[i - 1];
}
belt[0] = temp;
// 1-2. ๋ก๋ด ํ์
for (int i = N - 1; i > 0; i--) {
robot[i] = robot[i - 1];
}
robot[0] = false; // ์ฌ๋ฆฌ๋ ์์น
robot[N - 1] = false; //๋ด๋ฆฌ๋ ์์น
//2. ๊ฐ์ฅ ๋จผ์ ๋ฒจํธ์ ์ฌ๋ผ๊ฐ ๋ก๋ด๋ถํฐ, ๋ฒจํธ๊ฐ ํ์ ํ๋ ๋ฐฉํฅ์ผ๋ก ํ ์นธ ์ด๋ํ ์ ์๋ค๋ฉด ์ด๋ํ๋ค. ๋ง์ฝ ์ด๋ํ ์ ์๋ค๋ฉด ๊ฐ๋งํ ์๋๋ค.
for (int i = N - 1; i > 0; i--) {
// ๋ก๋ด์ด ์ด๋ํ๊ธฐ ์ํด์๋ ์ด๋ํ๋ ค๋ ์นธ์ ๋ก๋ด์ด ์์ผ๋ฉฐ, ๊ทธ ์นธ์ ๋ด๊ตฌ๋๊ฐ 1 ์ด์ ๋จ์ ์์ด์ผ ํ๋ค.
if (robot[i - 1] && !robot[i] && belt[i] > 0) {
belt[i]--;
robot[i] = true;
robot[i - 1] = false;
}
}
// 3. ์ฌ๋ฆฌ๋ ์์น์ ์๋ ์นธ์ ๋ด๊ตฌ๋๊ฐ 0์ด ์๋๋ฉด ์ฌ๋ฆฌ๋ ์์น์ ๋ก๋ด์ ์ฌ๋ฆฐ๋ค.
if (belt[0] > 0) {
belt[0]--;
robot[0] = true;
}
step++;
}
System.out.println(step);
}
}
โณํ๊ณ
- ๋ฌธ์ ์ดํด๊ฐ ์ ์๋ผ์ ๋ฌธ์ ๋ฅผ ๋ง์ด ๋ฐ๋ณตํด์ ์ฝ์๋ค.
- 1๋ฒ ๋จ๊ณ์์ ๋ฒจํธ๋ง ํ์ ์ ํ๋๋ฐ ๋ก๋ด๋ ํจ๊ป ํ์ ์ ํด์ผํ๋ค.
728x90
'Algorithm > Baekjoon' ์นดํ ๊ณ ๋ฆฌ์ ๋ค๋ฅธ ๊ธ
[Algorithm/Baekjoon] ๊ฒน์น๋ ๊ฑด ์ซ์ด - 20922 (S1/JAVA) (0) | 2023.06.21 |
---|---|
[Algorithm/Baekjoon] ๋ ๊ฒ์ - 9655 (S5/JAVA) (2) | 2023.06.19 |
[Algorithm/Baekjoon] 1์ ๊ฐ์ ์ธ๊ธฐ - 9527 (G2/JAVA) (0) | 2023.06.14 |
[Algorithm/Baekjoon] ์งํฉ - 11723 (S4/JAVA) (2) | 2023.06.11 |
[Algorithm/Baekjoon] ์ฌ์ด ์ต๋จ๊ฑฐ๋ฆฌ - 14940 (S1/JAVA) (0) | 2023.06.10 |