Notice
Recent Posts
Recent Comments
Link
일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
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 |
Tags
- Python
- sort
- 그리디알고리즘
- 퇴각검색
- 백준
- 그리디
- 소트인사이드
- 코딩테스트
- 정렬
- Backtracking
- 소트
- 브루트포스
- 2중포문
- 동적계획법
- 다익스트라
- 최빈값
- 덩치
- 백트래킹
- 프로그래머스
- 월간 코드 챌린지 시즌2
- 스프링프레임워크
- 404에러
- 파이썬
- 동적
- 최단거리
- 코테
- 스택
- 통계학
- DFS
- 스프링
Archives
- Today
- Total
취준생의 코딩테스트 연습기
[SWEA] 4874 [파이썬 S/W 문제해결 기본] 5일차 - Forth 본문
# 문제 링크
SW Expert Academy
SW 프로그래밍 역량 강화에 도움이 되는 다양한 학습 컨텐츠를 확인하세요!
swexpertacademy.com
# Soultion
예외처리를 많이 해줘야하는 문제이다. 나도 마지막에 숫자출력을 할 때 예외처리를 해주지 않아서 오류가 생겼다.
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
32
33
|
t = int(input())
for tc in range(1,t+1):
s = list(map(str,input().split()))
stack = []
for n in s:
if n=='.':
if len(stack)==1:
print("#"+str(tc),stack.pop())
else:
print("#"+str(tc),'error')
elif n.isdigit():
stack.append(n)
else:
if len(stack)<2:
print("#"+str(tc),'error')
break
else:
b = int(stack.pop())
a = int(stack.pop())
if str(a).isalpha() or str(b).isalpha():
print("#"+str(tc),'error')
break
elif n=='+':
stack.append(a+b)
elif n=='-':
stack.append(a-b)
elif n=='/':
stack.append(int(a//b))
elif n=='*':
stack.append(a*b)
|
cs |
7. 마지막 문자(.)를 만나면 출력한다. 이 때, stack에 숫자가 1개만 들어있어야지 출력하고 아니면 error를 출력한다.
12. 확인하는 문자가 숫자이면 stack에 저장한다.
14. 확인하는 문자가 연산자이면 다음을 진행한다.
15. 연산을 하기위해 스택에서 숫자2개를 꺼내하는데, stack에 들어있는 개수가 1개이하이면 error를 출력한다.
21. 숫자두개를 연산해야하는데, 숫자가아닌 연산자가 들어있으면 error를 출력한다.
24~30. 각각에 맞는 연산을 처리한 뒤, stack에 다시 저장한다.
'코딩테스트 > SWEA' 카테고리의 다른 글
[SWEA] 5097 [파이썬 S/W 문제해결 기본] 6일차 - 회전 (0) | 2021.06.01 |
---|---|
[SWEA] 4871 [파이썬 S/W 문제해결 기본] 4일차 - 그래프 경로 (0) | 2021.05.15 |
[SWEA] 4873 [파이썬 S/W 문제해결 기본] 4일차 - 반복문자 지우기 / 파이썬(python) (0) | 2021.04.07 |
[SWEA] 4866 [파이썬 S/W 문제해결 기본] 4일차 - 괄호검사 / 파이썬(pyt (0) | 2021.04.06 |
[SWEA] 4869 [파이썬 S/W 문제해결 기본] 4일차 - 종이붙이기 / 파이썬(python) (0) | 2021.04.06 |
Comments