가장 가까운 글자

수이·2025년 5월 27일

🟢 코드카타 / PYTHON

목록 보기
53/53

문자열 s가 주어졌을 때, s의 각 위치마다 자신보다 앞에 나왔으면서, 자신과 가장 가까운 곳에 있는 같은 글자가 어디 있는지 알고 싶습니다.
문자열 s이 주어질 때, 위와 같이 정의된 연산을 수행하는 함수 solution을 완성해주세요.
문제링크

풀이
1. 글자 마지막 위치 저장
2. 처음 나오면 -1 넣기
3. 반복해서 나올 경우 (새로 나온 위치) - (처음 나온 위치)

def solution(s):
    answer = []
    last = {} # 글자 마지막 위치 저장 
    
    for i in range(len(s)):
        char = s[i] 
        if char in last: # 나온 적 있을 경우 
            answer.append(i - last[char])
        else: # 나온 적 없을 경우 
            answer.append(-1)
        last[char] = i
    return answer

0개의 댓글