2019 ChickenReallyGood
5 The Deeper, The Better
https://www.acmicpc.net/contest/view/434
백준 대회 문제를 몇 개 풀어보고자 했다.
아, 근데 이거 하나 밖에 못풀었다.
이 문제를 풀고나서 에니그마 구현하는 문제를 풀고 있었는데, 이게 좀 어려워서 대회 끝날 때까지 그거 하나를 못 풀고 있었던 것이다.
뭐, 일단 그 이야기는 뒤로 하고, 이번 문제는 (x) {x} [x]를 기준으로 1,2,3점을 부여, 즉, ((x))은 2점, 이런느낌이다.
입력은 올바른 값만 들어온다.
X와 Y가 옳은 값이라면, XY도 옳은 값이다.
숫자가 겹쳐서 들어오는 경우는 없다.
그래서 값의 가중이 가장 큰 녀석의 값을 출력하면 되는데, 간단히 스택에 쌓아서 풀어보았다.
#include <stdio.h>
char arr[100];
int t,m=0,top=-1;
void push() {top++; arr[top]=t;}
void pop() {top--;}
void maxt() {
int s=0,i=0;
for(; i<=top; i++) {
if(arr[i]=='(') s++;
else if(arr[i]=='{') s+=2;
else s+=3;
}
if(s>m) m=s;
}
int main()
{
while(~(t=getchar())) {
if(t=='(' || t=='{' || t=='[') push();
else if(t==')' || t=='}' || t==']') pop();
else maxt();
}
printf("%d", m);
}
'C, C++ > 백준' 카테고리의 다른 글
10844번 쉬운 계단 수 문제를 풀어보았다. (0) | 2019.06.14 |
---|---|
2579번 계단 오르기 문제를 풀어보았다. (0) | 2019.06.13 |
11047번 동전 0 문제를 풀어보았다. (0) | 2019.06.09 |
10610번 30 문제를 풀어보았다. (0) | 2019.06.08 |
11727번 2×n 타일링 2 문제를 풀어보았다. (0) | 2019.06.04 |