아직 만들고 있는 페이지입니다.

이 페이지는 아직 만드는 중입니다. 보이는 내용은 바뀔 수 있습니다.

잘못된 버블정렬

시간 제한1초메모리 제한1024 MB

요약
N이 주어질 때, 주어진 잘못된 버블 정렬 코드가 정렬하지 못하는 길이 N의 수열을 출력한다.
난이도

보통10점 중 4점

유형
구현, 정렬, 완전 탐색
정답자
아직 제출이 없습니다

문제

학교 프로그래밍 시간에 버블 정렬을 배운 정연이는 버블 정렬을 써먹기 위해 백준에서 정렬 문제를 도전했다. 문제는 아래와 같았다.

”NN개의 수를 담은 수열 A_0A\_0, A_1A\_1, ⋯\cdots, A_N−1A\_{N-1}이 주어질 때 이를 오름차순으로 정렬하는 프로그램을 작성하시오.”

정연이는 자신의 코드가 완벽하다고 생각한 후 제출했지만, 아쉽게도 ’틀렸습니다’를 받았다. 정연이가 작성한 버블정렬 코드는 다음과 같다.

for (int i = N - 1; i > 0; i--) {
    for (int j = i - 1; j >= 0; j--) {
        if (A[j] > A[j + 1]) {
            int tmp = A[j];
            A[j] = A[j + 1];
            A[j + 1] = tmp;
        }
    }
}

수의 개수 NN이 주어질 때, 정연이가 짠 코드의 반례가 될 입력을 만들어 보자. 구체적으로, 당신은 정연이가 짠 코드의 반례가 될 길이 NN의 수열 AA를 만들어야 한다. 이때, AA의 모든 원소는 00 이상 10,00010\\,000 이하의 정수여야 하고, 정연이가 작성한 코드가 여러분이 출력한 NN개의 수를 올바르게 정렬할 수 없어야 한다.

입력 조건을 만족하는 모든 NN에 대해 이 조건을 만족하는 수열이 존재함을 증명할 수 있으며, 가능한 수열이 여러 가지라면 그 중 아무거나 출력한다.

입력

첫째 줄에 정수 NN이 주어진다.

출력

첫째 줄에 문제의 조건을 만족시키는 NN개의 정수 A_0A\_{0}, A_1A\_{1}, ⋯\cdots, A_N−1A\_{N-1}을 공백으로 구분하여 출력하라.

제한

  • 3≤N≤1,0003≤N≤1\\,000
  • 0≤A_i≤10,0000\leq A\_{i}\leq 10\\,000 (0≤i<N)(0 \le i < N)

예제1

  1. 예제 1

    입력
    3
    
    예상 출력
    3 1 2