๐ฐ๐๐๐๐๐๐๐๐/๐ฑ๐๐๐๐๐๐๐
[๋ฐฑ์ค/Java] ํ์ ํฐ๋จ๋ฆฌ๊ธฐ 2346
ํด๋ฒ๋
2023. 11. 17. 13:11
๋ฐ์ํ
๋ฌธ์
https://www.acmicpc.net/problem/2346
2346๋ฒ: ํ์ ํฐ๋จ๋ฆฌ๊ธฐ
1๋ฒ๋ถํฐ N๋ฒ๊น์ง N๊ฐ์ ํ์ ์ด ์ํ์ผ๋ก ๋์ฌ ์๊ณ . i๋ฒ ํ์ ์ ์ค๋ฅธ์ชฝ์๋ i+1๋ฒ ํ์ ์ด ์๊ณ , ์ผ์ชฝ์๋ i-1๋ฒ ํ์ ์ด ์๋ค. ๋จ, 1๋ฒ ํ์ ์ ์ผ์ชฝ์ N๋ฒ ํ์ ์ด ์๊ณ , N๋ฒ ํ์ ์ ์ค๋ฅธ์ชฝ์ 1๋ฒ ํ์
www.acmicpc.net
ํ์ด
์ฌ๋ฐ์๋ ๋ฌธ์
์ฒ์์ ArrayList๋ก ํ๋ค๊ฐ ๋ค์ ๋ฐฐ์ด๋ก ๋ฐ๊ฟ์ ํ์๋ค.
index๊ฐ์ ์ฐธ์กฐํด์ผํ๊ธฐ ๋๋ฌธ์,,
package algorithm;
import java.io.BufferedReader;
import java.io.IOException;
import java.io.InputStreamReader;
import java.util.StringTokenizer;
public class Balloon_2346 {
public static void main(String[] args) throws IOException {
BufferedReader br = new BufferedReader(new InputStreamReader(System.in));
// n ๋ฐฐ์ด ํฌ๊ธฐ, ๋ฐฐ์ด์ ๊ฐ๊ฐ ๊ฐ ๋ฐ๊ธฐ
int n = Integer.parseInt(br.readLine());
int[] list = new int[n];
int[] answer = new int[n];
int index = 0;
StringTokenizer st = new StringTokenizer(br.readLine());
for (int i = 0; i < n; i++) {
list[i] = Integer.parseInt(st.nextToken());
}
for (int i = 0; i < list.length - 1; i++) {
int num = list[index]; // list[index] ๊ฐ์ num์ผ๋ก ๊ฐ์ ธ์ num ์๋งํผ ์ด๋ํ๊ธฐ
list[index] = 0;
answer[i] = index + 1;
int k = 0;
while (k < Math.abs(num)) { // 0์ด๋ผ๋ฉด ๊ฑด๋ ๋ธ๊ฑฐ์
System.out.println("k :" + k);
if (num > 0) { // num์ด ์์๋ผ๋ฉด ์ค๋ฅธ์ชฝ์ผ๋ก
if (index + 1 >= list.length) { // index๊ฐ ๋ฐฐ์ด ํฌ๊ธฐ๋ณด๋ค ์ปค์ง๋ฉด ์ค์ฌ์ฃผ๊ธฐ
index -= list.length;
}
if (list[index + 1] != 0) { // ๊ฐ์ด ์๋ค๋ฉด count
k++;
index++;
} else { // ๊ฐ์ด 0์ด๋ ๊ฑด๋ ๋ฐ๊ธฐ
index++;
}
} else { // num์ด ์์๋ผ๋ฉด ์ผ์ชฝ์ผ๋ก
if (index - 1 < 0) {
index += list.length; // index๊ฐ 0๋ณด๋ค ์๋ค๋ฉด ๋ํด์ฃผ๊ธฐ
}
if (list[index - 1] != 0) { // ๊ฐ์ด ์๋ค๋ฉด count
k++;
index--;
} else { // ๊ฐ์ด 0์ด๋ ๊ฑด๋ ๋ฐ๊ธฐ
index--;
}
}
}
}
answer[answer.length - 1] = index + 1; // ๋ง์ง๋ง ๋ฐฉ (ํ do while๋ฅผ ์ผ์ด์ผ ํ๋)
for (int i = 0; i < answer.length; i++) { // ๋ต ์ถ๋ ฅ
System.out.print(answer[i] + " ");
}
}
}
์ ๋ต
๋ฐ์ํ