본문 바로가기

카테고리 없음

LV.1 대충 만든 자판

해당 문제를 풀기위해 각 키별로 타이핑이 가장 적게드는 값만 dic에 저장을 해서 targets에 있는 값을 dic의 value로 치환해서 그 값들을 모두 더하면 targets에 있는 타이핑을 하기위해 필요한 타이핑이 나올거라고 생각을 했다

그래서 먼저 keymap에있는 알파벳을 for문을 돌려서 enumerate를 통해서 key : index 방식으로 저장이 되게 했다

dic = {}
for keymaps in keymap:
    for i,key in enumerate(keymaps,1):
        if not dic.get(key) or dic.get(key,0) > i:
            dic[key]=i

이방식으로 keymaps에 있는 값들을 전부 dictionary에 저장을 해서 이제 targets에 있는 값하고 비교를 해서 얼마나 타이핑이 필요한지 계산을 했다

answer = []
for target in targets:
    count=0
        for typing in target:
            if not dic.get(typing):
                answer.append(-1)
                break
            count+=dic.get(typing)
        else:
            answer.append(count)

2차원 배열의 값을 전부 받아내기 위해서 count를 선언해서 각 배열마다 총 타이핑을count에 저장을해서 answer에 append로 밀어넣는 방법을 취하고 만약 없는 경우에는 answer에 -1을 밀어넣고 for문을 break하게 해서 불필요한 반복을 줄였다