티스토리 뷰
SWEA::1224::계산기3
출처 : https://www.swexpertacademy.com/main/code/problem/problemDetail.do?contestProbId=AV14tDX6AFgCFAYD
#include <stdio.h>
#include <algorithm>
char data[501];
char arr[501], arr2[501];
int calc[501];
int a, b, c;
char d[4][2] = { { 0, 3 },{ -1, -1 },{ 2, 2 },{ 1, 1 } };
int main() {
int tc, N, i;
for (tc = 1; tc <= 10; tc++)
{
scanf("%d", &N);scanf("%s", data);
a = b = c = 0;
for (i = 0; i < N; i++) {
if (data[i] == '(' || data[i] == '+' || data[i] == '*') {
while (b > 0 && d[arr2[b - 1] - '('][0] >= d[data[i] - '('][1]) {
arr[a] = arr2[b - 1];
a++;
b--;
}
arr2[b] = data[i];
b++;
}
else if (data[i] == ')')
{
while (arr2[b - 1] != '(') {
arr[a] = arr2[b - 1];
a++;
b--;
}
b--;
}
else if (data[i] >= '0' && data[i] <= '9')
{
arr[a] = data[i];
a++;
}
}
while (b) {
arr[a] = arr2[b - 1];
a++;
b--;
}
for (i = 0; i < a; i++) {
if (arr[i] >= '0' && arr[i] <= '9') {
calc[c] = arr[i] - '0';
c++;
}
else if (arr[i] == '+') {
calc[c - 2] = calc[c - 2] + calc[c - 1];
c--;
}
else if (arr[i] == '*') {
calc[c - 2] = calc[c - 2] * calc[c - 1];
c--;
}
}
printf("#%d %d\n", tc, calc[0]);
}
return 0;
}
'알고리즘 > SWEA' 카테고리의 다른 글
[SWEA 2383] 점심 식사시간 (2) | 2018.08.16 |
---|---|
[SWEA 1244] 최대 상금 (0) | 2018.08.13 |
[SWEA 1223] 계산기2 (0) | 2018.08.10 |
[SWEA 1222] 계산기1 (0) | 2018.08.10 |
[SWEA 1221] GNS (0) | 2018.08.10 |
- Total
- Today
- Yesterday
- scanf
- STL
- SWEA
- DFS
- string
- SW Expert Academy
- 트렌드
- hackerrank
- 17779
- 게리맨더링 2
- 2018 KAKAO BLIND RECRUITMENT
- 17143
- 17837
- 이차원 배열과 연산
- 삼성
- 미세먼지 안녕!
- DP
- 팁
- 17140
- 17144
- boj
- 백준
- 2018 카카오 블라인드 채용
- 연구소 3
- 알고리즘
- 역량 테스트
- 시간 복잡도
- 새로운 게임 2
- 17142
- 입출력
일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
1 | 2 | 3 | 4 | |||
5 | 6 | 7 | 8 | 9 | 10 | 11 |
12 | 13 | 14 | 15 | 16 | 17 | 18 |
19 | 20 | 21 | 22 | 23 | 24 | 25 |
26 | 27 | 28 | 29 | 30 | 31 |