728x90
https://www.acmicpc.net/problem/3986
3986번: 좋은 단어
이번 계절학기에 심리학 개론을 수강 중인 평석이는 오늘 자정까지 보고서를 제출해야 한다. 보고서 작성이 너무 지루했던 평석이는 노트북에 엎드려서 꾸벅꾸벅 졸다가 제출 마감 1시간 전에
www.acmicpc.net
#include <stdio.h> // 좋은 단어
#include <stdlib.h>
#include <string.h>
typedef struct
{
char stk[100001];
int size;
}STACK;
int is_empty(STACK* s)
{
if (s->size <= 0)
return 1;
else
return 0;
}
void push(STACK* s, char data)
{
s->stk[(s->size)++] = data;
}
void pop(STACK* s)
{
--(s->size);
}
char top(STACK* s)
{
int temp = s->size;
return s->stk[--temp];
}
char str[100001];
int main()
{
int n;
scanf("%d", &n);
STACK s;
int ans = 0;
for (int i = 0; i < n; i++)
{
scanf("%s", str);
int len = strlen(str);
s.size = 0;
for (int j = 0; j < len; j++)
{
if (is_empty(&s))
{
push(&s, str[j]);
}
else
{
if (str[j] == top(&s))
{
pop(&s);
}
else
{
push(&s, str[j]);
}
}
}
if (is_empty(&s))
ans++;
}
printf("%d", ans);
return 0;
}
MEMO
-- 문제 해석해 시간이 걸렸지만, 스택 구현으로 간단히 해결가능한 문제
-- 단어 위로 곡선을 그어 잇는다는 점에 주의
-- 마지막에 짝을 이루지 못한 A or B가 있다면(스택이 비어있지 않다면) 좋은 단어 x
-- 마지막에 스택이 비어있다면(모두 짝을 이룸) 좋은 단어 o
!! 문제이해 집중해서 하기 !!
728x90
728x90
'백준[baekjoon] > C언어' 카테고리의 다른 글
백준(baekjoon) [C] - 9935번: 문자열 폭발 (0) | 2023.02.16 |
---|---|
백준(baekjoon) [C] - 2346번: 풍선 터뜨리기 (0) | 2023.02.14 |
백준(baekjoon) [C] - 2161번: 카드1 (0) | 2023.02.13 |
백준(baekjoon) [C] - 2110번: 공유기 설치 (0) | 2023.02.13 |
백준(baekjoon) [C] - 1149번: RGB거리 (0) | 2023.02.12 |