내 제대로 된 첫 코딩테스트 공부이자 첫 게시물이다.
문제를 풀면서 헷갈렸던 내용이나 실수했던 내용, 지속적으로 기억됐으면 하는 내용을 기록하기 위해 시작했다. 다소 우당탕탕 지나가는 글이지만 앞으로 더 다듬어지길 바라면서 ✨
문제: https://www.acmicpc.net/problem/28278

내 코드 👇
stack = []
import sys
input = sys.stdin.readline
num = int(input()) # 초기 값 받음
for i in range(num):
# sys.stdin.readline을 사용하면 불러올 때 개행문자(\n) 없애야함
data = list(map(int, input().rstrip().split(' ')))
#data = input().split() # 이렇게 사용하면 리스트로 묶여서 바로바로 들어가긴 함
# 개행문자 제거도 필요없고 리스트로 지정도 안해줘도 됨(대신 int로 나오지 않으니 이 부분만 수정하면 됨)
if data[0] == 1:
stack.append(data[1])
elif data[0] == 2:
if not stack:
print(-1)
else:
p_num = stack[-1]
stack.pop()
print(p_num)
elif data[0] == 3:
print(len(stack))
elif data[0] == 4:
if not stack:
print(1)
else:
print(0)
elif data[0] == 5:
if not stack:
print(-1)
else:
print(stack[-1])
여러 열 입력을 받기 위해선 sys.stdin.readline 사용하기 ⭐️
코딩테스트 문제에 익숙하지 않다보니 아무래도 입력값을 받는 부분부터 헷갈렸다.
sys.stdin.readline을 사용해 input() 값을 받고 예제 값과 같이 여러 열이 존재할 때 한 줄 한 줄 입력값으로 받아 사용되는 방식이다.
입력 부분은 여러 문제를 풀어보면서 익히는게 가장 좋은 방법인 것 같다.