
- 입력받은 값들을 리스트에 넣은 뒤 swap하는 값과 하지 않는 값을 구분한다. -> max 이용
- 입력받을 때 input을 쓰면 시간초과가 난다. -> sys 사용
- 메모리 : 42616 KB
- 시간 : 276 ms
import sys
n=int(input())
swap = 0
book = []
for _ in range(n):
book.append(int(sys.stdin.readline()))
max = book[0]
for i in range(1,n) :
if book[i] > max :
if max+1 != book[i] :
swap +=1
max = book[i]
else :
swap +=1
print(swap)
- deque를 이용해 insert할 때 시간을 줄이려고 했으나 while문 자체에서 이미 시간초과가 나기 때문에 의미 없었다.
- swap을 한 뒤 다시 처음으로 돌아가 반복하기 때문에 비효율적이다.
- 인덱스 범위를 통해 break 조건을 만들었기 때문에 1234 가 나와도 4번 돌아야 확인이 가능하다.
from collections import deque
n = int(input())
book = deque()
swap = 0
for _ in range(n):
book.append(int(input()))
book.append(300001)
index = 0
while 1:
if index >= n:
break
if book[index] > book[index+1]:
swap += 1
temp = book[index+1]
del book[index+1]
book.appendleft(temp)
index = 0
else:
index += 1
print(swap)