1. 사용한 풍선은 표시해두고, 지나가더라도 카운트하지 않는다
2. 양 끝 간 이동 처리를 위해, 증감시 N으로 나머지 연산
import java.io.BufferedReader;
import java.io.InputStreamReader;
import java.util.StringTokenizer;
public class Main{
public static void main(String[] args)throws Exception {
BufferedReader br = new BufferedReader(new InputStreamReader(System.in));
StringBuilder sb = new StringBuilder();
int N = pint(br.readLine());
int[] num = new int[N];
boolean[] chk = new boolean[N];
StringTokenizer st = new StringTokenizer(br.readLine());
for (int i = 0; i < N; i++) {
num[i]=pint(st.nextToken());
}
int cur=0;
sb.append(cur+1).append(" ");
int move = num[cur];
chk[cur]=true;
for (int i = 1; i < N; i++) {
int cnt=0;
while(cnt<Math.abs(move)) {
if(move>0) {
cur++;
cur%=N;
if(chk[cur])continue;
}
else {
cur--;
cur+=N;
cur%=N;
if(chk[cur])continue;
}
cnt++;
}
sb.append(cur+1).append(" ");
move = num[cur];
chk[cur]=true;
}System.out.println(sb);
}
static int pint(String s) {
return Integer.parseInt(s);
}
}
'알고리즘 문제 풀이 > BOJ 실버' 카테고리의 다른 글
[백준] 18428 - 감시 피하기 (1) | 2021.12.25 |
---|---|
[백준] 9934 - 완전 이진 트리 (0) | 2021.12.22 |
[백준] 14496 - 그대, 그머가 되어 (0) | 2021.11.14 |
[백준] 17276 - 배열 돌리기 (0) | 2021.10.10 |
[백준] 1325 - 효율적인 해킹 (0) | 2021.09.25 |
[백준] 5567 - 결혼식 (0) | 2021.08.08 |
[백준] 14241 - 슬라임 합치기 (0) | 2021.07.07 |