[프로그래머스] Python 대충 만든 자판 Level1 - 연습문제

swb·2024년 1월 27일

프로그래머스

목록 보기
12/23

문제 바로가기

접근 방법

targets에 있는 문자열을 하나씩 보며 keymap에 포함되어 있는지를 확인해야겠다 생각했다.

예를 들어 AABACD, BCEFD 중에 첫 번째 keymap에 속해있고 1번만 누르면 된다. B는 두 keymap에 모두 속해있지만 두 번재 keymap에서는 1번만 누르면 된다. A는 1번, B도 1번 이렇게 총 2번만 누르면된다.

예외사항의 경우는 keymap에 없는 것인데 target AC는 keymap BC에 C는 속해있지만 A는 없기 때문에 -1을 출력해야 한다.

코드

def solution(keymap, targets):
    answer = []
    for i in range(len(targets)):
        cnt = 0 # 몇 번 눌렀는지
        temp = -1 # 눌린 index를 잠시 저장하는 변수
        for j in range(len(targets[i])):
            minN = 999 # 더 적게 누른 곳
            for key in keymap:
                if targets[i][j] in key:
                    temp = key.index(targets[i][j])
                else:
                    temp = 9999
                minN = min(temp, minN) # 더 적게 누른 곳 저장
            if minN == -1 or minN == 999: 
                cnt = -1
                break
            else:
                cnt += minN + 1 # index는 0부터 시작하니 +1


        answer.append(cnt)
    
    return answer
profile
개발 시작

0개의 댓글