PS알못 OrbitHv의 PS logo PS알못 OrbitHv의 PS

태그:

18. 큐, 덱

양방향 원형 큐와 비슷한 구조에서 주어지는 파일들을 빼는데 필요한 큐의 이동 횟수를 구하는 문제입니다. 문제를 보면 할 수 있는 행동이 3가지인데, front의 원소 제거, 왼쪽으로 한 칸 이동, 오른쪽으로 한 칸 이동입니다. 주어진 M개의 파일들을 모두 빼내기 위해서는 각 파일을 이동을 통해 front로 옮기고 이를 제거해야 합니다. 각 파일마다 front로 옮기기 위한 이동 횟수를 구해야 하는데, 갈 수 있는 방법이 2가지입니다. 왼쪽과 오른쪽으로 이동시킬 수 있고, 어느 쪽으로 갈지는 큐의 중간 지점보다 왼쪽인지 오른쪽인지로 판단할 수 있습니다. 방향과 거리를 알았으면, 덱에 해당 변경사항을 적용합니다. 이를 각 파일마다 적용하고 이동 횟수를 모두 더하면 답이 됩니다.

소스 코드

언어 코드 시간
Python 3 코드(Github) / 코드(백준) 2020-04-03 00:08:28