코드
from collections import deque
n,m = map(int, input().split())
location = [*map(int, input().split())]
num = deque([i for i in range(1, n+1)]) # 수를 맞춰주기 위해 1부터 n까지 리스트 만들어주기
cnt = 0 # 최소값 구하기
for i in location:
while 1: # 무한루프
if i == num[0]: # 1번째 값과 i가 같으면 1번 연산을 해준다.
num.popleft()
break # 탈출
else:
if num.index(i) > len(num)/2: # i에 해당하는 숫자 인덱스가 뒤쪽에 있는 경우
num.appendleft(num.pop()) # rotate(1)을 사용해도 된다
cnt += 1
elif num.index(i) <= len(num)/2: # i에 해당하는 수가 앞쪽에 있는 경우
num.append(num.popleft()) # rotate(-1)을 사용해도 된다
cnt += 1
print(cnt)
'백준' 카테고리의 다른 글
[백준] 1051번 숫자 정사각형 파이썬 코드 (0) | 2023.11.28 |
---|---|
[백준] 1083번 소트 파이썬 코드 (0) | 2023.11.28 |
[백준] 1744번 수 묶기 파이썬 코드 (1) | 2023.11.27 |
[백준] 13549번 숨바꼭질 3 파이썬 코드 (0) | 2023.11.24 |
[백준] 5014번 스타트링크 파이썬 코드 (1) | 2023.11.22 |
코드
from collections import deque
n,m = map(int, input().split())
location = [*map(int, input().split())]
num = deque([i for i in range(1, n+1)]) # 수를 맞춰주기 위해 1부터 n까지 리스트 만들어주기
cnt = 0 # 최소값 구하기
for i in location:
while 1: # 무한루프
if i == num[0]: # 1번째 값과 i가 같으면 1번 연산을 해준다.
num.popleft()
break # 탈출
else:
if num.index(i) > len(num)/2: # i에 해당하는 숫자 인덱스가 뒤쪽에 있는 경우
num.appendleft(num.pop()) # rotate(1)을 사용해도 된다
cnt += 1
elif num.index(i) <= len(num)/2: # i에 해당하는 수가 앞쪽에 있는 경우
num.append(num.popleft()) # rotate(-1)을 사용해도 된다
cnt += 1
print(cnt)
'백준' 카테고리의 다른 글
[백준] 1051번 숫자 정사각형 파이썬 코드 (0) | 2023.11.28 |
---|---|
[백준] 1083번 소트 파이썬 코드 (0) | 2023.11.28 |
[백준] 1744번 수 묶기 파이썬 코드 (1) | 2023.11.27 |
[백준] 13549번 숨바꼭질 3 파이썬 코드 (0) | 2023.11.24 |
[백준] 5014번 스타트링크 파이썬 코드 (1) | 2023.11.22 |