DHistory

[Programmers] Level 1 - 대충 만든 자판 본문

Computer Science/Algorithm

[Programmers] Level 1 - 대충 만든 자판

ddu0422 2023. 6. 15. 22:19

문제

 

프로그래머스

코드 중심의 개발자 채용. 스택 기반의 포지션 매칭. 프로그래머스의 개발자 맞춤형 프로필을 등록하고, 나와 기술 궁합이 잘 맞는 기업들을 매칭 받으세요.

programmers.co.kr

 

풀이

def solution(keymap, targets):    
    # 초기화
    answer = []
    letters = [0] * 26

    # 문제 풀이
    # 각 문자별 최소 자판 횟수
    for key in keymap:
        for i in range(len(key)):
            index = ord(key[i]) - ord('A')
            if letters[index] == 0 or letters[index] > i + 1:
                letters[index] = i + 1

    # target을 완성하기 위한 최소 자판 횟수
    for target in targets:
        sum = 0
        for alphabet in target:
            index = ord(alphabet) - ord('A')
            if letters[index] != 0:
                sum += letters[index]
            else:
                sum = -1
                break
        answer.append(sum)
        
    return answer

 

채점 결과