728x90
반응형
https://www.acmicpc.net/problem/1021
deque을 얼마나 잘 활용할 수 있는지에 대한 문제
while문과 for문을 좀 난잡하게 쓴 것 같다.
마지막에 popleft를 안해서 시간을 좀 사용한 것 같다.
그리고 index라는 좋은 함수가 있어서 내가 짠 중간부분 for문을 dq.index(i)로 변환하면 파이썬의 이점을 더 살릴 수 있을 것 같다.
코딩을 C언어로 시작해서.. 파이썬 함수를 아직도 잘 모른다.
from collections import deque
n, m = map(int, input().split())
dq = deque([])
for i in range(1, n+1):
dq.append(i)
arr = list(map(int, input().split()))
cnt = 0
for i in range(m):
if dq[0] == arr[i]: #같으면 pop
dq.popleft()
continue
indexNum=0
for j in range(len(dq)): #맞는 index 찾기
if dq[j] == arr[i]:
indexNum = j
while dq[0] != arr[i]: #다르면 같을때까지
if indexNum > len(dq)//2:
cnt+=1
dq.appendleft(dq.pop())
else:
cnt+=1
dq.append(dq.popleft())
dq.popleft()
print(cnt)
728x90
반응형
'알고리즘' 카테고리의 다른 글
[백준] 11652번: 카드 - python (0) | 2024.03.19 |
---|---|
[백준] 5648번: 역원소 정렬 - python (0) | 2024.03.19 |
[백준] 2217번: 로프 - python (1) | 2024.03.19 |
[백준]1652번 : 누울 자리를 찾아라 - python (0) | 2024.03.18 |
[백준]9655번: 돌 게임 - python (0) | 2024.03.18 |