문제요약
아이디어
결론
중첩 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)