[백준/Python] 28278번 스택 2

2025. 3. 4. 11:31·알고리즘문제풀이

문제

https://www.acmicpc.net/problem/28278


문제 이해

문제 이름과 같이 스택에 관한 문제이다.

명령어(1~5)에 따라 명령을 수행하면 되는 차례대로 풀면 되는 문제이다.


문제 풀이(정답)

import sys
input=sys.stdin.readlin
 
n = int(input())
stack = []

for _ in range(n):
    cmd = input().split()

    if cmd[0] == '1':
        stack.append(cmd[1])
    elif cmd[0] == '2':
        if len(stack) == 0:
            print(-1)
        else:
            print(stack.pop())
    elif cmd[0] == '3':
        print(len(stack))
    elif cmd[0] == '4':
        if len(stack) == 0:
            print(1)
        else:
            print(0)
    elif cmd[0] == '5':
        if len(stack) == 0:
            print(-1)
        else:
            print(stack[-1])

 

이 문제에서 내가 놓쳤던 부분이 2가지 있다.

 

문제점 1 ]  split()

첫번째는 cmd 명령어를 받을 때 1번의 경우 '1 x'를 입력하면 x를 스택에 넣는다.

나는 x가 한자리 수인 경우만 생각하고 cmd[-1]로 추가를 했는데 이렇게 되면 오답이 된다.

input()값을 분리한 후 값을 추가하면 해결 할 수 있다.

cmd = input().split()

 

 

문제점 2 ]  시간초과

두번째는 시간초과 문제이다.

시간초과 문제는 빈번하게 발생하는 문제이다. 여기서도 역시 sys모듈을 사용하니 해결되었다.

import sys
input = sys.stdin.readline

 

시간초과 결과가 나타났을 때, sys 모듈을 사용해야 하는 가능성이 높은 경우를 정리해 봤다.

 

1. 입력 개수가 클 때 (1만~10만 개 이상)

2. 반복문을 사용해 여러 줄을 입력 받을 때

 

이러한 경우에 시간초과 문제가 나타난다면 일단 input()을 sys 모듈로 사용해 보면 시간초과 문제가 해결될 수도 있다.

저작자표시 비영리 변경금지 (새창열림)

'알고리즘문제풀이' 카테고리의 다른 글

[백준/Python] 2108번 통계학  (0) 2025.03.06
[백준/Python] 11729번 2×n 타일링  (0) 2025.03.05
[백준/Python] 11652번 카드  (0) 2025.02.28
[백준/Python] 7785번 회사에 있는 사람  (0) 2025.02.27
[백준/Python] 2563번 색종이  (0) 2025.02.26
'알고리즘문제풀이' 카테고리의 다른 글
  • [백준/Python] 2108번 통계학
  • [백준/Python] 11729번 2×n 타일링
  • [백준/Python] 11652번 카드
  • [백준/Python] 7785번 회사에 있는 사람
jungyn
jungyn
jungyn 님의 블로그 입니다.
  • jungyn
    jungyn 님의 블로그
    jungyn
  • 전체
    오늘
    어제
    • 분류 전체보기 (36)
      • 알고리즘문제풀이 (31)
      • 제로인턴 (5)
  • 블로그 메뉴

    • 홈
    • 태그
    • 방명록
  • 링크

  • 공지사항

  • 인기 글

  • 태그

    카드1
    2606
    제로인턴
    18110
    너비우선탐색
    시간초과
    2161
    수들의 합 2
    통계헉
    스택 2
    다이나믹프로그래밍
    교점개수
    SYS
    2108
    solved.ac
    1629
    1847
    프로그래머스
    BFS
    스택 수열
    후기
    2차원행렬
    DP
    사전직무교육
    11729
    2563
    28278
    counter
    백준
    스택
  • 최근 댓글

  • 최근 글

  • hELLO· Designed By정상우.v4.10.3
jungyn
[백준/Python] 28278번 스택 2
상단으로

티스토리툴바