Problem-Solving/BOJ
[BOJ/백준][Gold4] 8981 : 입력숫자 (C++)
has2
2021. 1. 31. 22:03
https://www.acmicpc.net/problem/8981
8981번: 입력숫자
첫 줄에는 정수 N이 제시되어 있고, 그 다음 줄에는 N개의 양의 정수가 빈칸을 사이에 두고 기록되어 있어야 한다. 만일 입력을 생성하는 mystery.c의 입력파일 X가 없는 경우에는 음수인 -1 을 첫 줄
www.acmicpc.net
[난이도] 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