[BOJ] 28278: 스택 2

이슬비·2023년 11월 16일
0

Algorithm

목록 보기
104/110
post-thumbnail

내 맘대로 풀고 싶은 거 풀기!

1. 내 풀이: 성공

import sys
input = sys.stdin.readline

n = int(input())
stack = []

for _ in range(n):
    task = list(map(int, input().rstrip().split()))
    
    if task[0] == 1:
        stack.append(task[1])
    elif task[0] == 2:
        if len(stack) == 0:
            print(-1)
        else:
            print(stack.pop())
    elif task[0] == 3:
        print(len(stack))
    elif task[0] == 4:
        if len(stack) == 0:
            print(1)
        else:
            print(0)
    else:
        if len(stack) == 0:
            print(-1)
        else:
            print(stack[-1])

문제 자체는 별로 어렵지 않다고 생각했는데, 정답률이 38% 밖에 되지 않아 조금 놀랐다.
내 풀이는 숫자 받을 때마다 처리해주는 방식!
(시간 초과 뜰까 두근두근 했지만, 통과!)

2. 다른 사람 풀이

다들 비슷비슷했다.
stack 실버 4니까 ...

근데 한 가지 궁금했던 게, 결국 여기서 시간을 줄일 수 있는 구간이 많지 않을텐데, 만약 기존 python의 input()을 쓰면 어떻게 될까? 라는 생각이 들었다. 그래서 바로 실험함.

세 번째 풀이가 input() 함수 쓴 건데, 시간 초과가 났다!
앞으로 꼭 sys.stdin.readline()을 써야지 ...!
다음 번엔 두 가지가 무엇이 다른지 한 번 리뷰해보겠다.

3. 느낀 점

쉬운 거라도 매일 풀면서 감 찾기

profile
정말 알아?

0개의 댓글