안녕하세요. 오늘은 해를 구성해볼 거예요.

문제

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

아이디어

모든 수열을 구해보면 특정 위치에 있는 값이 많이 나온다는것을 알 수 있습니다. 가운데로 갈수록 많이나오고 끝으로 갈수록 적게 나옵니다. 그래서 가운데에는 큰 수들을, 끝에는 작은 수들을 배치해주면 됩니다.

맨 가운데에는 N, 그 양옆으로 N-1, N-2, 그 양옆으로 N-3,N-4가 나오면 됩니다. 맨 마지막에는 1과 2가 나오게 됩니다. 이를 쉽게 구현하면 맨 앞에서부터 홀수를 오름차순으로 나열하고 다 끝나면 짝수를 내림차순으로 나열하면 됩니다.

소스코드

#include <iostream>
using namespace std;

int main(void)
{
    ios_base::sync_with_stdio(false); cin.tie(NULL);
    int N, i;
    cin >> N;
    for (i = 1; i <= N; i += 2)
        cout << i << ' ';
    if (N % 2 == 0) i = N;
    else i = N - 1;
    for (i; i >= 1; i -= 2)
        cout << i << ' ';
}


감사합니다.

0개의 댓글