[백준/BOJ] 17505. 링고와 순열 [Gold 5]

jychan99·2022년 2월 4일
0
post-thumbnail
  1. 링고와 순열

문제출처 : https://www.acmicpc.net/problem/17505

code

#include <iostream>
#include <vector>
using namespace std;

int main()
{
    long long N, K, i, j = 1;

    cin >> N >> K;
    vector<int> arr(N);

    if (K == 0)
    {
        for (i = 0; i < N; i++)
            arr[i] = j++;
    }
    else if (K < N)
    {
        arr[K] = j++;
        for (i = 0; i < N; i++)
            if (i != K)
                arr[i] = j++;
    }
    else
    {
        int index = N - 1;
        while(K)
        {
            if (K < index)
            {
                arr[K] = j++;
                K = 0;
            }
            else
            {
                arr[index] = j++;
                K -= index--;
            }
        }
    }
    for (i = 0; i < N; i++)
        if (arr[i] == 0)
            arr[i] = j++;

    for (i = 0; i < N; i++)
        cout << arr[i] << " ";

    return 0;
}

일반 그리디문제랑 별다를거없는 문제였다. 골드정도의 난이도는 아닌듯..? 아닌가
몰라 좀 야매긴하지만, 경우를 3가지로 나눠서 처리하니까 훨씬 편리했다.

profile
내가 지금 두려워 하고 있는 일이 바로 내가 지금 해야 할 일이다. 🐥

0개의 댓글