-
[Python] BOJ 10845 큐코딩테스트/백준 2024. 10. 21. 07:52
https://www.acmicpc.net/problem/10845
생각해보기
더보기무조건 이상하게 구현 시도하려고 하지 말고, 파이썬에서 제공하는 모듈 deque 를 사용해서 리스트에 값을 넣고 빼자.
요구사항
- 시간제한 0.5초
- python 에서 제공하는 모듈을 사용하자. O(n) 정도일 때 만..
- 메모리제한 256MB
- 하나의 리스트를 담기엔 충분하다.
- 명령어가 입력으로 주어 졌을 때, 명령어 규칙에 따라 결과값을 출력하자.
설계
- 모듈 deque 를 불러온다.
- 나도 예전엔 "이런 거까지 외워야 되나 싶었다" 그러면 이렇게 해보쇼 !! 문제를 모듈을 사용하지 않고 문제를 풀어보고 !! 모듈을 한번 써보면 너무 편하고 이렇게 하면 이렇게 간단한 걸... 하고 까먹기 싫어서 외워졌다.
- 입력으로 받은 N번 동안 for문을 이용해 돌려준다.
- 각 명령어에 맞게 출력될 수 있게 한다.
- 여기서 if queue: 란 만약 queue가 비어 있지 않을 때, 아래 문장을 수행하세요 이다
queue = [1] if queue: # 현재 1이 들어 있음. queue.pop() print(queue) # [] if queue: print("이 문장은 출력되지 않습니다.")
구현
import sys input = lambda: sys.stdin.readline().rstrip() from collections import deque queue = deque() N = int(input()) for _ in range(N): command = input().split() if command[0] == "push": queue.append(command[1]) elif command[0] == "front": if queue: print(queue[0]) else: print(-1) elif command[0] == "size": print(len(queue)) elif command[0] == "empty": if queue: print(0) else: print(1) elif command[0] == "back": if queue: print(queue[-1]) else: print(-1) elif command[0] == "pop": if queue: print(queue.popleft()) else: print(-1)
'코딩테스트 > 백준' 카테고리의 다른 글
[Python] BOJ 3986 : 좋은 단어 (2) 2024.10.23 [Python] BOJ 4949 : 균형잡힌 세상 (0) 2024.10.22 [Python] BOJ 17298 : 오큰수 (0) 2024.10.19 [Python] BOJ 1158 : 요세푸스 문제 (0) 2024.10.17 [Python] BOJ 5397 : 키로거 (1) 2024.10.16 - 시간제한 0.5초