대충만든 자판

문학적인유사성·2024년 3월 28일
0

language

목록 보기
19/24
post-thumbnail

과하게 어렵게 풀고있는 느낌이드는데...
다른사람들은 어떻게 풀었는지 보러가야겠다.

빠르게 구현으로 끝날 문제인데, flag설정을 잘못해서 시간이 1.5배 걸린 느낌이다...

def solution(keymap, targets):
    answer = []
    alphabet = [ int(999) for _ in range(27)] # keymap 최대 100

    for key in keymap:
        for i in range(len(key)):
            if alphabet[ord(key[i])-ord('A')+1] >= i+1:
                alphabet[ord(key[i])-ord('A')+1]=i+1
                
    print(alphabet)
    
    for target in targets:
        flag=True
        result=0
        # print(target)
        for i in range(len(target)):
            if alphabet[ord(target[i])-ord('A')+1]==999:
                flag=False
                break
            result+=alphabet[ord(target[i])-ord('A')+1]
            
        if flag==True:
            answer.append(result)
        else:
            answer.append(-1)
    
    return answer

참고

ord() : 문자의 유니코드 코드 포인트를 반환하는 내장 함수
문자열에서 한 문자를 가져와 해당 문자의 유니코드 코드 포인트를 반환

print(ord('A'))  # Output: 65
profile
Are you nervous? Don't be

0개의 댓글