프로그래머스/Lv. 2
17. 조이스틱 ★★ - 보류
Seohyeong Lee
2024. 7. 19. 23:28
유형: 그리디? 완전탐색?
풀이 시간: 인터넷 검색
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)
이 경우는 두 가지 경우 (그냥 정석대로 쭉 / 반대로 쭉) 밖에 고려하지 못하므로 틀린 풀이가 된다.