유형: 그리디? 완전탐색?

풀이 시간: 인터넷 검색

 

1. 나의 풀이

def solution(name):
    answer = 0
    a = ord('A')
    z = ord('Z')
    olist = []
    for i in name:
        n = min (abs(ord(i) - a), abs(z - ord(i) + 1))    
        olist.append(n)
        answer += n
        
    cnt1 = 0
    for i in range(len(olist)-1):
        if olist[i+1:].count(0) == len(olist[i+1:]):
            break
        cnt1 += 1
    
    cnt2 = 0
    olist.append(olist.pop(0))
    olist.reverse()

    for i in range(len(olist)-1):
        if olist[i+1:].count(0) == len(olist[i+1:]):
            break
        cnt2 += 1
    print(cnt1, cnt2)
    return answer + min(cnt1, cnt2)

 

이 경우는 두 가지 경우 (그냥 정석대로 쭉 / 반대로 쭉) 밖에 고려하지 못하므로 틀린 풀이가 된다. 

'프로그래머스 > Lv. 2' 카테고리의 다른 글

18. 입국심사 ★★  (0) 2024.07.19
16. 게임 맵 최단거리 ★ (BFS, zip)  (0) 2024.07.19
15. 타겟 넘버 ★(DFS)  (0) 2024.07.18
14. 카펫 (완전 탐색)  (0) 2024.07.18
13. 소수 찾기 (완전 탐색)  (1) 2024.07.18
복사했습니다!