풀이
- 뭔가 애를 먹었던 부분이 else의 if 문에서 인덱스와 dq.size()/2 부분에서
- 정수 나누기 정수의 경우엔 정수로 되는 부분으로 한참 고생을 했다.
- 마지막으로 문제에서 2번,3번 연산의 최솟값을 출력하라고 해서
- 둘 중 작은 값으로 출력해야하는 줄 알고도 조금 ... ㅎ
import sys
from collections import deque
input = sys.stdin.readline
cnt = 0
n,m = map(int,input().split())
dq = deque(range(1,n+1))
for i in list(map(int,input().split())):
while True:
if i == dq[0]:
dq.popleft()
break
else:
if dq.index(i) < len(dq)/2:
while dq[0] != i:
cnt += 1
dq.rotate(-1)
else:
while dq[0] != i:
cnt += 1
dq.rotate(1)
print(cnt)
'알고리즘' 카테고리의 다른 글
[백준, 자바, 1051번] 숫자 정사각형 (1) | 2023.12.20 |
---|---|
[백준, 파이썬, 1051번] 숫자 정사각형 (0) | 2023.12.20 |
[백준, 자바, 1021번] 회전하는 큐 (0) | 2023.12.19 |
[백준, 자바, 1049번] 기타줄 (0) | 2023.12.18 |
[백준, 파이썬, 1049번] 기타줄 (0) | 2023.12.18 |