알고리즘

[프로그래머스, 파이썬] 가장 가까운 같은 글자

hminor 2024. 2. 28. 12:05

풀이

  • 딕셔너리를 활용한 풀이로 초기 값으로는
  • 중복을 제거한 s 문자열 요소로 하여 -1로 초기화
  • 이후 해당 값이 -1의 경우 해당 값을 result로 넣어주고 
  • 아니면 현재 문자 위치에 해당 값을 뺀 값을 result로 추가
  • 조건식이 끝난 이후 key 값인 현재 문자의 값에 현재 위치를 넣어 해결

 

def solution(s):
    result = []
    dic = {i:-1 for i in set(s)}
    for i in range(len(s)):
        if dic.get(s[i]) != -1: result.append(i-dic[s[i]])
        else: result.append(-1)
        dic[s[i]] = i
    return result