https://www.acmicpc.net/problem/8981
[난이도] Gold4
[유형] 구현
[풀이]
코드를 보고 역추적하는 문제이다. 인덱스와 값의 관계를 잘 파악해야 한다.
어떤 Y에 대해서도 X는 무조건 존재하므로 -1인 출력은 신경쓰지 않아도 된다.
#include <cstdio>
int N,a[30],b[30];
int main(){
scanf("%d",&N);
for(int i=0;i<N;i++) scanf("%d",&a[i]);
int idx=0;
b[0]=a[0];
for(int j=1;j<N;j++){
int mv = b[idx];
idx=(idx+mv)%N;
while(b[idx]!=0) idx=(idx+1)%N;
b[idx]=a[j];
}
printf("%d\n",N);
for(int i=0;i<N;i++) printf("%d ",b[i]);
}
https://github.com/has2/Problem-Solving/blob/master/boj-solved.ac/Gold4/8981.cpp
'Problem-Solving > BOJ' 카테고리의 다른 글
[BOJ/백준][Gold4] 18119 : 단어 암기 (C++) (0) | 2021.01.31 |
---|---|
[BOJ/백준][Gold4] 16932 : 모양 만들기 (C++) (0) | 2021.01.31 |
[BOJ/백준][Gold4] 1577 : 도로의 개수 (C++) (0) | 2021.01.31 |
[BOJ/백준][Gold4] 1153 : 네 개의 소수 (C++) (0) | 2021.01.31 |
[BOJ/백준][Gold4] 14267 : 회사 문화 1 (C++) (0) | 2021.01.31 |