본문 바로가기

deque

백준 18258 큐 2 파이썬 [개인적인 풀이 과정] https://www.acmicpc.net/problem/18258 18258번: 큐 2 첫째 줄에 주어지는 명령의 수 N (1 ≤ N ≤ 2,000,000)이 주어진다. 둘째 줄부터 N개의 줄에는 명령이 하나씩 주어진다. 주어지는 정수는 1보다 크거나 같고, 100,000보다 작거나 같다. 문제에 나와있지 www.acmicpc.net 전에 풀었던 10828 스택 문제와 상당히 유사하다. https://www.acmicpc.net/problem/10828 push, pop, size, empty 까지는 동일하고, front와 back이 추가 되었는데 스택에서는 top과 비슷한 개념이 앞 뒤에 달려있다고 봐도 될 것 같다. import sys input = sys.stdin.readline n = int(.. 더보기
백준 1021 회전하는 큐 파이썬 [개인적인 풀이 과정] 첫 번째 입력으로 큐의 크기와 뽑아내려는 수의 개수 두 번째 입력으로 뽑아내려 하는 수의 위치가 순서대로 주어진다. 문제는 이해가 되고, 두 번째 줄에 입력되는 값이 큐의 위치에서 중간보다 앞에 있으면 좌로이동(2번 연산) 뒤에 있으면 우로이동(3번 연산)을 하는 것이 2, 3번 연산의 최솟값이 될 것 이라는 것은 알았다. 기존에 알던 리스트로 풀려고 했는데 도저히 2번과 3번 연산을 어떻게 해야 리스트에서 구현이 가능할까? 생각하다가 리스트의 0번째 인덱스를 del로 지우기 전에 append하고, 원래 있던 0번째 인덱스를 del로 지우면 2번 연산이 가능하겠다 생각했지만 3번 연산은 어떻게 해야할지 엄두가 안났다. append를 앞에 할수도 없고, 하고나서 정렬을 하는 것도 순서가 안맞아서 안되기 때.. 더보기