🥞 BE
home

10828_스택

담당자
완료 여부
Solved
요약
날짜
2024/05/31
태그
자료구조
구현
기초
난이도
S4
출처
백준

처음 코드

n = int(input()) stack = [] for _ in range(n): command = input() if command == 'push': num = input() stack.append(num) elif command == 'pop': if len(stack) == 0: print(-1) else: print(stack.pop(-1)) elif command == 'size': print(len(stack)) elif command == 'empty': if len(stack) == 0: print(1) else: print(0) elif command == 'top': if len(stack) == 0: print(-1) else: print(stack[-1]
Python
복사
여기서 입력을 push X 이런식으로 공백과 함께 받아서 그 수를 append 시켜야하는데.. 이게 좀 어려웠다.
list로 스택 구현하는게 맞나 싶기도 하고.
→ 입력 받고 split를 해서 인덱스로 공백을 처리하면 되는거였다.

수정 코드

import sys input = sys.stdin.readline n = int(input()) stack = [] for _ in range(n): command = input().split() if command[0] == 'push': stack.append(command[1]) elif command[0] == 'pop': if len(stack) == 0: print(-1) else: print(stack.pop(-1)) elif command[0] == 'size': print(len(stack)) elif command[0] == 'empty': if len(stack) == 0: print(1) else: print(0) elif command[0] == 'top': if len(stack) == 0: print(-1) else: print(stack[-1]
Python
복사

문제 해결 아이디어

입력시 split과 인덱스를 활용해서 공백이 포함된 입력을 처리할 수 있다. (이건 자주 사용될 것 같으니 꼭 알아두기!) 나머지는 리스트의 pop, -1인덱싱을 활용해 충분히 스택을 구현할 수 있다.