[백준] #20921 그렇고 그런 사이

문제

이 문제는 진짜 감이 안왔다. 그래서 무작정 조건을 나눠서 짜봤는데 어림도 없었다 ㅎ
어쩔 수 없이 다른 분의 아이디어를 참고했다. 참고한 분의 아이디어 :https://hijihyo.tistory.com/2 를 보고 오!!! 싶었다. 우선 이 아이디어를 보고 내가 코드를 짜보려고했는데 구조화를 잘 못시킨 것 같다.. 그래서 이분 블로그의 코드도 참고했다 흑흑 어쩜 이렇게 간결하게 짜셨는지 정말 멋지다,,, 나도 무작정 누더기코드로 짤 생각을 하지말고 구상을 좀 하면서 짜야할 것 같다.

#include <iostream>

#define MAX 4242 
using namespace std;
int n, k, num=0;
int A[MAX], B[MAX]; 

int main() {
   
    cin>>n>>k;

    
    for (int i=0; i<n; i++)
        A[i] = i + 1;

    
    for (int i=n-1; i>0; i--) {
        if (k >= i) {
            k -= i;
            A[i] = -1;
            B[num++] = i+1;
        }
    }

   
    for (int i=0; i<n; i++) {
        if (A[i] >= 0)
            B[num++] = A[i];
        cout<<B[i]<<" ";
    }
    

    return 0;
}

좋은 웹페이지 즐겨찾기