문제요약
아이디어
결론
중첩 for loop로 구현한 코드
def sol(arr, l):
srtd = sorted(arr)
dic = {}
cnt = 0
dic = {arr[i] : i for i in range(n)}
for i in range(l):
if srtd[i] != arr[i]:
for j in range(l):
if srtd[i] == arr[j]:
arr[i], arr[j] = arr[j], arr[i]
cnt +=1
break
return cnt
def lilysHomework(arr):
# Write your code here
l = len(arr)
rev = list(reversed(arr)).copy()
cnt1 = sol(arr, l)
cnt2 = sol(rev, l)
return min(cnt1, cnt2)
dictionary로 구현한 코드
def sol(arr, l):
srtd = sorted(arr)
dic = {}
cnt = 0
dic = {arr[i] : i for i in range(n)}
for i in range(l):
if srtd[i] != arr[i]:
j = dic[srtd[i]]
dic[arr[i]] = dic[srtd[i]]
arr[i], arr[j] = srtd[i], arr[i]
cnt += 1
return cnt
def lilysHomework(arr):
# Write your code here
l = len(arr)
rev = list(reversed(arr)).copy()
cnt1 = sol(arr, l)
cnt2 = sol(rev, l)
return min(cnt1, cnt2)