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

 

8981번: 입력숫자

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

www.acmicpc.net

<풀이>

1. 주어진 코드가 어떻게 동작하는지 이해하고, 코드를 구현한다.

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
#include <iostream>
#include <cstring>
using namespace std;
 
int N;
int X[101];
 
int main() {
 
    cin >> N;
 
    //초기화
    memset(X, 0sizeof(X));
    int value = 0, from = 0;
 
    //구현
    for (int i = 0; i < N; i++) {
        int num;
        cin >> num;
 
        from = (from + value) % N;
        value = X[from];
        while (value > 0) {
            from = (from + 1) % N;
            value = X[from];
        }
 
        X[from] = num;
        value = num;
    }
 
    cout << N << "\n";
    for (int i = 0; i < N; i++) {
        cout << X[i] << " ";
    }
}

 

구현에 대해 알아볼 수 있는 문제였습니다.

'알고리즘 문제풀이 > 백준' 카테고리의 다른 글

[Python] 백준 10834 - 벨트  (0) 2020.06.21
[Python] 백준 10833 - 사과  (0) 2020.06.21
[C++] 백준 8980 - 택배  (0) 2020.04.30
[C++] 백준 2512 - 예산  (0) 2020.04.30
[C++] 백준 8979 - 올림픽  (0) 2020.04.30

+ Recent posts