[python_파이썬_pass]프로그래머스_LV1_가장 가까운 같은 글자_풀이

2024. 5. 23. 12:02코드리뷰

728x90
반응형

공부하는허딩크 : https://www.youtube.com/live/Io7CilXhjrk?feature=shared

 

조금 고민을 하다가 일단 포기하고 다른 문제를 풀다가 다시 왔다. (첫번째 시도는 이력X)

 

<두번째 시도 : 통과>

딕셔너리를 활용해서 각 문자를 key값으로 두고, value를 리스트로 만들어서 첫번째 값은 인덱스를 준다.

그리고 dict에 신규로 추가되는 문자면 answer에 -1을 추가해주고 있는 문자면 현재 index에서 dict에서 key값으로 문자를 찾고 해당되는 value의 리스트에 마지막 값과의 차액을 answer에 추가해준다.

그리고 해당되는 index를 dict에 추가해서 마지막 문자의 인덱스가 계속 찾을 수 있게 한다.

#2번째 시도하는 거지만 일단 맞음
def solution(s):
    answer = []
    dict_temp = {}
    for index, i in enumerate(s):
        if i not in dict_temp:
            dict_temp[i] = [index]
            answer.append(-1)
        else:
            answer.append(index-dict_temp[i][-1])
            dict_temp[i].append(index)
    return answer
728x90
반응형