반응형

https://www.acmicpc.net/problem/8981

 

8981번: 입력숫자

첫 줄에는 정수 N이 제시되어 있고, 그 다음 줄에는 N개의 양의 정수가 빈칸을 사이에 두고 기록되어 있어야 한다. 만일 입력을 생성하는 mystery.c의 입력파일 X가 없는 경우에는 음수인 -1 을 첫 줄

www.acmicpc.net

 

 

[ 문제풀이 ]

 

1. Y배열을 보고 X배열을 역으로 구해내야 하는 문제입니다.

 

2. 값과 인덱스를 더한 뒤 모듈러 연산을 통해 인덱스를 갱신하고, 해당 인덱스에 값이 없다면 값을 넣고, 값이 있다면 인덱스에 +1을 하여 위 과정을 반복합니다.

 

3. X배열을 출력합니다.

 

[ 소스코드 ]

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
#include <iostream>
 
using namespace std;
 
int NUM[101];
int ans[101];
 
int main() {
    ios_base::sync_with_stdio(false);
    cin.tie(NULL);
    cout.tie(NULL);
 
    int i, token, N;
    int count = 1, from = 0, value;
    
    cin >> N;
    for (i = 0; i < N; i++) {
        cin >> token;
        NUM[i] = token;
    }
 
    ans[0= NUM[0];
 
    cout << N << '\n';
 
    int cur = 0;
 
    while (count < N) {
        value = ans[cur];
        cur = (cur + value) % N;
        while (ans[cur] != 0) cur = (cur + 1) % N;
        ans[cur] = NUM[count];
        count++;
    }
 
    for (int i = 0; i < N; i++) {
        cout << ans[i] << ' ';
    }
}
cs
반응형

+ Recent posts