반응형
#include<stdio.h>
#include<string.h>
#define MAX_SIZE 200001
char result[MAX_SIZE];
int indexd = 0;
void push(int *stack, int data, int *topp) {
stack[(*topp)++] = data;
result[indexd++] = '+';
}
void pop(int *stack, int *topp) {
stack[(*topp)--];
result[indexd++] = '-';
}
int main() {
int N;
scanf("%d", &N);
int stack[N];
int top = 0;
int *topp = ⊤
int size = 0;
for(int i = 0; i < N; i++) {
int s;
scanf("%d", &s);
if(size < s) {
while(size != s) {
push(stack, ++size, topp);
}
pop(stack, topp);
} else if(stack[top - 1] == s) {
pop(stack, topp);
} else {
result[0] = 'x';
}
}
if(result[0] == 'x') {
printf("NO");
} else {
int i = 0;
while(result[i] != NULL) {
if (result[i + 1] == NULL) {
printf("%c", result[i++]);
} else {
printf("%c\n", result[i++]);
}
}
}
return 0;
}
풀다가 수정하다 풀다가 수정하다 하면서
코드가 많이 지저분해졌다.
그래도 어느정도 잘 해결했다.
반응형
'BaekJoon > C++' 카테고리의 다른 글
2751 : 수 정렬하기 2 (C) (0) | 2021.01.11 |
---|---|
2750 : 수 정렬하기 (C) (0) | 2021.01.11 |
11866 : 요세푸스 문제 (C) (0) | 2021.01.10 |
10845 : 큐 (C) (0) | 2021.01.10 |
9012 : 괄호 (C) (0) | 2021.01.09 |
댓글