https://school.programmers.co.kr/learn/courses/30/lessons/142086
[풀이]
def solution(s):
answer = []
dict_ = {}
for idx, apb in enumerate(s):
if apb in dict_.keys():
result = idx - dict_[apb]
answer.append(result)
dict_[apb] = idx
else :
dict_[apb] = idx
answer.append(-1)
return answer
- 리스트 s에서 새롭게 알파벳이 나올 때마다 dictinoary에 키 - 알파벳 , 밸류 - 인덱스로 저장
- 없으면 -1 추가
- 저장해둔 딕셔너리를 비교하면서, 해당 알파벳이 있다면 현재 인덱스에서 저장해둔 알파벳의 인덱스를 뺀 값을 answer 리스트에 추가
- answer 반환
[풀이 후기]
완전탐색이나 이런 부분은 어렵지 않은 것 같은데, 알고리즘 지식이 조금만 들어가면 엄청 헤매는 것 같다. 기본서 읽으면서 계속 풀어야징
'코딩테스트 스터디 > 프로그래머스' 카테고리의 다른 글
[LV 2/정렬] 가장 큰 수 (0) | 2023.07.15 |
---|---|
[LV2/해시] 의상 (0) | 2023.07.15 |
[LV2/해시] 전화번호 목록 (0) | 2023.07.15 |
[LV2 SQL] 조건에 맞는 도서와 저자 리스트 출력하기(JOIN 에서 WHERE 와 ON 의 차이) (0) | 2023.07.14 |
[LV2] 귤고르기 (0) | 2023.07.14 |