1874
#include <stdio.h>
int main(void){
// 테스트 케이스 입력
int test_case = 0;
scanf("%d", &test_case);
int stack[100000] = {0};
char print[200000] = {0};
int max = 0, s_index = 0, p_index = 0, is_impossible=0;
for(int i = 0; i < test_case; i++){
// 수열 정수 입력
int num = 0;
scanf("%d", &num);
// push
for(int j = max+1; j <= num; j++){
print[p_index++] = '+';
stack[s_index++] = j;
}
// pop
int is_impossible_f = 1;
for(int j = s_index-1; j >= 0; j--){
print[p_index++] = '-';
s_index--;
if(stack[j] == num){
is_impossible_f = 0;
break;
}
}
// 불가능한 경우 break;
if(is_impossible_f){
is_impossible = is_impossible_f;
break;
}
// max 갱신
if(max < num){
max = num;
}
}
// 출력
if(is_impossible){
printf("NO");
}
else{
for(int i = 0; i < p_index; i++){
printf("%c\n", print[i]);
}
}
return 0;
}

코드가 좀 맘에 안들긴하넹... 맞긴했는데 좀 더 좋은 코드가 있을까? 생각하는 코드임!
'백준' 카테고리의 다른 글
| [ 백준 / C ] 24228번 : 젓가락 (0) | 2025.11.28 |
|---|---|
| [ 백준 / C ] 10171번 : 고양이 (0) | 2025.11.27 |
| [ 백준 / C ] 9012번 : 괄호 (0) | 2025.11.25 |
| [ 백준 / C ] 5948번 : Bad Random Numbers (0) | 2025.11.24 |
| [ 백준 / C ] 9093번 : 단어 뒤집기 (0) | 2025.11.21 |