본문 바로가기
Problem Solving/BOJ

[BOJ][Python]1021 풀이

by NoiB 2023. 7. 1.
반응형

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

 

1021번: 회전하는 큐

첫째 줄에 큐의 크기 N과 뽑아내려고 하는 수의 개수 M이 주어진다. N은 50보다 작거나 같은 자연수이고, M은 N보다 작거나 같은 자연수이다. 둘째 줄에는 지민이가 뽑아내려고 하는 수의 위치가

www.acmicpc.net

from collections import deque

n, m = map(int, input().split())
o = list(map(int, input().split()))
q = deque([i+1 for i in range(n)])
ans = 0
for i in range(m):
    t = q.index(o[i])
    if t < len(q)/2:
        ans += t
        q.rotate(-t)
        q.popleft()
    else:
        ans += len(q) - t
        q.rotate(len(q) - t)
        q.popleft()
print(ans)

사실 문제의 의도는 이게 아니겠지만 시간 제한이 2초로 넉넉하고 N도 50밖에 안되길래 진짜 시키는대로 한 번 풀어봤습니다. 정말 하라는 그대로 데크를 만들고 필요한 만큼 rotate시켜가면서 풀면 끝인 문제라 아마 시간이 좀 지나서 N의 조건이 커지거나 시간 제한이 더 줄어들면 아마 통과하지 못하겠죠.

반응형

'Problem Solving > BOJ' 카테고리의 다른 글

[BOJ][Python]1072 풀이  (0) 2023.07.03
[BOJ][Python]1063 풀이  (0) 2023.07.02
[BOJ][Python]1004 풀이  (0) 2023.06.29
[BOJ][Python]4344 풀이  (0) 2023.06.28