과하게 어렵게 풀고있는 느낌이드는데...
다른사람들은 어떻게 풀었는지 보러가야겠다.
빠르게 구현으로 끝날 문제인데, 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