문제

문제

 

처음 작성한 코드 // 90.9 점 나옴

def solution(name):
    alphabet = [chr(65+i) for i in range(26)]
    result = ['A']*len(name)
    answer = 0
    cursor = 0
    for idx,value in enumerate(name):
        i = alphabet.index(value)
        if i < 26-i:
            answer += i
        else:
            answer += (26-i)
        if idx+1!= len(name) and result[idx+1] != name[idx+1]:
            if idx+1-cursor < cursor+1: # 오른쪽으로
                answer+= (idx+1-cursor)
            else: # 왼쪽으로 돌아서 맨 오른쪽으로
                answer += cursor+1
            cursor = idx+1 # 'A' 인 애들 뛰어넘기
    return answer

 

문제 링크

https://programmers.co.kr/learn/courses/30/lessons/42860#

 

코딩테스트 연습 - 조이스틱

조이스틱으로 알파벳 이름을 완성하세요. 맨 처음엔 A로만 이루어져 있습니다. ex) 완성해야 하는 이름이 세 글자면 AAA, 네 글자면 AAAA 조이스틱을 각 방향으로 움직이면 아래와 같습니다. ▲ - 다

programmers.co.kr

 

깨달은 점

문제에서 "최소값"을 찾으라 하여 찾았는데.. 90.9점이 뜹니다.. 제 코드를 보시고 혹시 잘못된 점이 있다면 댓글에 남겨주시면 감사하겠습니다!!

'Programmers' 카테고리의 다른 글

카펫  (0) 2021.01.03
소수 찾기  (0) 2021.01.03
기능개발  (0) 2021.01.02
주식가격  (0) 2021.01.01
이상한 문자 만들기  (0) 2021.01.01