https://www.acmicpc.net/problem/10828
[정답]
먼저 stack에 대한 함수들을 정의한다.
1. 'push X: 정수 X를 스택에 넣는 연산이다.' → push(X): append() 함수를 사용하여 리스트 stack에 인자값 X를 push한다.
2. 'pop: 스택에서 가장 위에 있는 정수를 빼고, 그 수를 출력한다. 만약 스택에 들어있는 정수가 없는 경우에는 -1을 출력한다.' → pop(): len(stack)==0이라면 -1을, len(stack)==0이 아니라면 pop() 함수를 사용하여 stack에 가장 위에 있는 정수를 pop한다.
3. 'size: 스택에 들어있는 정수의 개수를 출력한다.' → size(): len() 함수를 사용하여 stack의 길이를 출력한다.
4. 'empty: 스택이 비어있으면 1, 아니면 0을 출력한다.' → empty(): len(stack)==0이라면 -1을, len(stack)==0이 아니라면 0을 출력한다.
5. 'top: 스택의 가장 위에 있는 정수를 출력한다. 만약 스택에 들어있는 정수가 없는 경우에는 -1을 출력한다.' → top(): len(stack)==0이라면 -1을, len(stack)==0이 아니라면 스택의 가장 위에 있는 정수 즉 stack[-1]을 출력한다.
6. 명령어 수를 N에 입력받는다. 스택의 역할을 할 리스트 stack을 정의한다.
7. for문을 돌면서 명령어를 comm에 입력받는다. comm을 split()으로 받아 comm=push 1일 경우, comm[0]=push, comm[1]=1로 되도록 한다. comm[0]이 각각 'push', 'pop', 'size', 'empty', 'top' 경우를 나누어 위에서 정의한 알맞은 함수에 적용한다.
'알고리즘 공부 > 백준 > Python3' 카테고리의 다른 글
[백준 파이썬] #10817: 세 수 (0) | 2021.01.26 |
---|---|
[백준 파이썬] #2935: 소음 (0) | 2021.01.26 |
[백준 파이썬] #2108: 통계학 (0) | 2021.01.21 |
[백준 파이썬] #11292: 키 큰 사람 (0) | 2021.01.20 |
[백준 파이썬] #10816: 숫자 카드 2 (0) | 2021.01.18 |