이 문제는 진짜 감이 안왔다. 그래서 무작정 조건을 나눠서 짜봤는데 어림도 없었다 ㅎ
어쩔 수 없이 다른 분의 아이디어를 참고했다. 참고한 분의 아이디어 :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;
}