DHistory

[Programmers] Level 1 - 가장 가까운 같은 글자 본문

Computer Science/Algorithm

[Programmers] Level 1 - 가장 가까운 같은 글자

ddu0422 2023. 7. 3. 15:51

문제

 

프로그래머스

코드 중심의 개발자 채용. 스택 기반의 포지션 매칭. 프로그래머스의 개발자 맞춤형 프로필을 등록하고, 나와 기술 궁합이 잘 맞는 기업들을 매칭 받으세요.

programmers.co.kr

 

풀이

def solution(s):
    answer = []
    dictionary = {}

    for i in range(len(s)):
        alpha = s[i]

        # 처음 나오는 문자인 경우 결과에 -1을 저장합니다.
        # 현재 문자열의 index를 문서에 저장합니다.
        if dictionary.get(alpha) == None:
            answer.append(-1)
            dictionary.setdefault(alpha, i)
        # 2번 이상 나온 문자인 경우 결과 몇 번째만에 나왔는지 확인합니다. (현재 index - 기존 index)
        # 몇 번째만에 해당 문자가 나왔는지 계산하여 결과에 저장합니다.
        # 현재 문자열의 index를 문서에 저장합니다.
        else:
            count = i - dictionary[alpha]
            answer.append(count)
            dictionary[alpha] = i

    return answer

 

채점 결과