저고데

[프로그래머스]대충 만든 자판 본문

프로그래머스

[프로그래머스]대충 만든 자판

진철 2023. 3. 4. 22:50
728x90
반응형

문제 링크 : https://school.programmers.co.kr/learn/courses/30/lessons/160586

 

프로그래머스

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

programmers.co.kr

코드를 작성하기 위한 순서는 다음과 같다.

1. 딕셔너리를 사용하여 해당 알파벳이 몇 번 index인지 만들어준다.

2. 여러 kepmap에 중복되는 알파벳이 있다면 가장 적은 index를 딕셔너리에 넣어준다.

3. targets에 해당하는 알파벳이 딕셔너리에 없다면 -1을 넣어주고 그렇지 않다면 해당 value 값을 더해준다.

 

def solution(keymap, targets):
    answer = []
    key = {} #1번
    for i in keymap:
        for j, k in enumerate(i): #index 번호를 편리하게 측정하기 위해 enumerate를 사용하였다.
            if k not in key.keys(): #2번
                key[k] = j+1
            else: #2번
                if key[k] > j+1: #2번 : 더 작은 index로 초기화한다.
                    key[k] = j+1

    for i in targets:
        temp = 0
        for j in i:
            if j not in key.keys(): #3번
                temp = -1
                break
            else:
                temp += key[j]
        answer.append(temp)
        
    return answer

 

중복되는 알파벳이 존재하고 또한 그 중에서 가장 작은 index를 구해줘야하기 때문에 중복되지 않는 key 값을 사용하는 딕셔너리를 사용했다.

풀이 과정 중 2번이 풀이의 핵심이었다.

728x90
반응형