문제출처 : https://www.acmicpc.net/problem/24025
code
#include <iostream>
#include <vector>
using namespace std;
int main()
{
int N, i, j = 1;
cin >> N;
int k = N;
vector<int> A(N);
vector<int> re(N);
for (i = 0; i < N; i++)
{
cin >> A[i];
if (A[i] > 0)
re[i] = k--;
else
re[i] = j++;
}
if (A[N - 1] < 0)
cout << -1;
else
for (i = 0; i < N; i++)
cout << re[i] << " ";
return 0;
}
문제는 쉬운편이였는데 하도 안풀어서 그런가 머리가 굳어서 시간이 좀 걸렸다.
천천히 양수일때와 음수일때 어떤 패턴이 나타나는지 규칙을 살펴보고, 구현하니까 수월했다.
처음에 k를 70000으로 설정해버려서 제출할때마다 실패가 떳는데, N으로 설정하니까 통과됐다. ㅎㅎ