코테 백준 1021 실버3

김동윤·2023년 7월 26일
0
post-thumbnail

백준 1021

문제를 이해하는데 오래 걸렸다. 처음에 1부터 n까지 순차적인 큐라고도 생각 못하고 배열의 위치일때 최솟값을 찾아라? 무슨 소린지 몰랐다. 그래서 생각하다가 순차적인 배열을 만들고 사실상 배열의 위치가 값인거다. 그래서 0번째 인덱스의 값이 주어진 값이랑 같을때 cnt를 증가하면된다.

import sys
from collections import deque
input=sys.stdin.readline

n,m=map(int,input().split())
idx=list(map(int,input().split()))

num=deque([i for i in range(1,n+1)])

cnt=0

for i in idx:
    while True:
        if num[0]==i:
            num.popleft()
            break
        else:
            if num.index(i)<=len(num)//2:
                num.rotate(-1)
                cnt+=1
            else:
                num.rotate(1)
                cnt+=1

print(cnt)
profile
Back-End

0개의 댓글