반응형
문제 이해가 안되어서 다른 분의 글을 보고 문제를 이해했다.
C언어로 문제 풀 때마다 느끼는건데, 문자열 활용에 대해서 다른 언어들보다 너무 기능이 후달린다..
C언어로 문제 풀 때 문자열 다루는 문제가 나올 때 마다 짜증난다.. 하.. 자바랑 씨쁠쁠 방법이 훨씬 쉽다.
이 문제.. 결과 다 구해놓고 문자열 출력에서 막혔다. C언어는 문자열을 위한 배열 크기가 정적이라 정말..짜증
정해진 크기도 없고.. 임의로 정해주었다.
#include <stdio.h>
#include <stdlib.h>
int cur = 0; // 현재 값 상태
typedef struct {
int *stk;
int size;
} IntStack;
void push(IntStack *s, int a) {
s->stk[s->size++] = a;
}
void pop(IntStack *s, int *a) {
*a = s->stk[--s->size];
}
int top(IntStack *s) {
return s->stk[s->size - 1];
}
int N;
int temp;
char result[100000*2]; // 결과를 담을 배열.. C언어는 참 문자열 다루는게 유동적이지 않아서 힘들다.
int r_p = 0; // result 이터레이터
int main() {
IntStack stack;
stack.size = 0;
stack.stk = calloc(100000, sizeof(int));
scanf("%d", &N);
for(int i = 0; i < N; i++) {
scanf("%d", &temp);
while(top(&stack) != temp) {
if(top(&stack) > temp) {
printf("NO\n");
return 0;
} else {
push(&stack, ++cur);
result[r_p++] = '+';
}
}
pop(&stack, &temp); // temp에 굳이 받을필욘 없다만..
result[r_p++] = '-';
}
for(int i = 0; i < r_p; i++) {
printf("%c\n", result[i]);
}
}
반응형
'[백준]' 카테고리의 다른 글
[BaekJoon/백준] 18258 큐 구현 (링 버퍼 기반) (0) | 2021.03.07 |
---|---|
[BaekJoon/백준] 17298 스택 활용 (0) | 2021.03.07 |
[BaekJoon/백준] 4949 스택 활용 (0) | 2021.03.06 |
[BaekJoon/백준] 9012번 스택 활용 (2) | 2021.03.05 |
[BaekJoon/백준] 10773번 스택 (0) | 2021.03.05 |