09009
[프로그래머스 lv1] 대충 만든 자판 본문
문제 보기
https://school.programmers.co.kr/learn/courses/30/lessons/160586
프로그래머스
코드 중심의 개발자 채용. 스택 기반의 포지션 매칭. 프로그래머스의 개발자 맞춤형 프로필을 등록하고, 나와 기술 궁합이 잘 맞는 기업들을 매칭 받으세요.
programmers.co.kr
문제 해결
해당 단어의 인덱스 정보를 저장하는 딕셔너리를 활용하는 것이 핵심이다.
keymap이 두 가지 종류가 주어졌을 때, 최소 인덱스를 찾아 코드를 적용하는 것을 해결하지 못했다.
소스 코드
def solution(keymap, targets):
answer = []
key_dic = {}
for i in range(len(keymap)):
for j in range(len(keymap[i])):
char = keymap[i][j]
if char not in key_dic:
key_dic[char] = j+1
else:
key_dic[char] = min(key_dic[char], j+1)
for target in targets:
sum = 0
for t in target:
if t in key_dic:
sum += key_dic[t]
else:
sum = -1
break
answer.append(sum)
return answer
def solution(keymap, targets):
answer = []
dic = {}
for key in keymap:
for i in range(len(key)):
if key[i] not in dic:
dic[key[i]] = i+1
else:
dic[key[i]] = min(dic[key[i]], i+1)
for target in targets:
cnt = 0
for i in range(len(target)):
if target[i] in dic:
cnt += dic[target[i]]
else:
cnt = 0
break
if cnt == 0:
answer.append(-1)
else:
answer.append(cnt)
return answer
'Algorithm' 카테고리의 다른 글
[프로그래머스 lv1] 둘만의 암호 (0) | 2023.10.10 |
---|---|
[프로그래머스 lv2] 택배 상자 (0) | 2023.10.09 |
[프로그래머스 lv1] 문자열 나누기 (0) | 2023.10.09 |
[프로그래머스 lv1] 체육복 (0) | 2023.10.09 |
[프로그래머스 lv1] 숫자 짝꿍 (0) | 2023.10.09 |
Comments