새소식

Career/Coding Test

99클럽 코테 스터디 24/99일차 TIL #대충 만든 자판(미들러)

  • -
반응형

 

문제 이해

1번 => A
2번 => B
3번 => C

1<=키 개수<=100
같은 문자가 여러번 할당, 키 하나에 같은 문자 여러번 할당
할당 안된 경우

최소 몇번 눌러야 문자열 작성 가능한지 => 완전 탐색

keymap = ["ABACD", "BCEFD"]
0번키 누르면 나오는 배열: ABACD 
1번키 누르면 나오는 배열: BCEFD
-> ABCD
(0,1), (1,1), (1,2), (0,5)  => 9
특정 문자가 특정 키에서 가장 먼저 나오는 것을 찾고 그 인덱스를 반환

없는 경우 -1 return

lst = []
keymap => dic으로 만들고
target을 돌면서 
for words in target:
    cnt = 0
    for word in words:
        word 가 있는지
        없으면 -1 return
        있으면 두 리스트 중에 인덱스 값이 가장 작은 값을 cnt +
    lst.append(cnt)

targets = ["ABCD","AABB"]

 

def solution(keymap, targets):
    
#     keymap을 딕셔너리로 만들기
    key_dic = {}
        
    for i in keymap:
        for key in i:
            if key not in key_dic:
                key_dic[key] = i.index(key)
            else:
                key_dic[key] = min(key_dic[key], i.index(key))
    # print(key_dic)
    
    result_dic = []
    for target in targets:
        cnt = 0
        for search_char in target:
            
            # print(search_char, key_dic)
            if search_char in key_dic:
                cnt += key_dic[search_char]+1
            else:
                cnt = -1
                break
        
        
        result_dic.append(cnt)
        
            
    return result_dic

 

 

 

반응형
Contents

포스팅 주소를 복사했습니다

이 글이 도움이 되었다면 공감 부탁드립니다.