이름에서 알파벳이 'A'가 아닌 것의 index 추리기
조이스틱 상,하 계산(A에서 해당 알파벳 만들기)
조이스틱 좌,우 계산(커서 옮기기)
notA : 이름에서 알파벳이 'A'가 아닌 것의 index를 담는 list
cur : name에서의 현재 커서(index)
l : 첫 번째 위치에서 조이스틱을 왼쪽으로 해서 마지막 문자로 이동했는지 여부(0 : X, 1: O)
def solution(name):
answer = 0
# 1. 이름에서 알파벳이 'A'가 아닌 것의 index 추리기
notA = []
for i in range(len(name)):
if name[i] != 'A':
notA.append(i)
# 2. 조이스틱 상,하 계산(A에서 해당 알파벳 만들기)
for c in name:
if ord(c) < 79:
answer += ord(c) - 65
else:
answer += 91 - ord(c)
# 3. 조이스틱 좌,우 계산(커서 옮기기)
cur = 0
l = 0
while 0 < len(notA):
if cur in notA:
notA.remove(cur)
if len(notA) == 0:
continue
if l == 0:
right = notA[0] - cur
left = cur + len(name) - notA[len(notA) - 1]
if left < right:
answer += left
cur = notA[len(notA) - 1]
l = 1
else:
answer += right
cur = notA[0]
else:
left = cur - notA[len(notA) - 1]
answer += left
cur = notA[len(notA) - 1]
return answer
파이썬에서 문자와 아스키코드 사이 변환
- 문자에서 아스키코드로 변환
ord('문자')
- 아스키코드에서 문자로 변환
chr(숫자)