이 험난한 세상에서어어~

가장 가까운 같은 글자, python 본문

algorithm/코딩 테스트

가장 가까운 같은 글자, python

토끼띠NJW 2023. 6. 3. 11:22

문제 설명

주어진 문자열의 문자를 확인할 때, 만일 현재의 문자의 위치와 같은 문자지만 제일 가까운 문자와의 거리 차이를 구하는 문제다. 만일 문자가 처음 나왔으면 -1을 붙인다.

 

https://school.programmers.co.kr/learn/courses/30/lessons/142086

 

프로그래머스

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

programmers.co.kr

문제 풀이

첫 번째 풀이

문제를 보자마자 dict를 사용해야 겠다고 생각했다. 문자열에서 문자를 하나씩 검사하는데, 만일 dict에 들어가 있으면 해당 값을 가지고 와서 현재의 인덱스와의 차이를 구한 후 정답에 붙인다. 그리고 해당 문자의 위치를 새로 갱신한다. 그리고 처음 나온 문자면 -1을 붙이고 마찬가지로 위치를 갱신하면 된다.

 

코드

def solution(s):
    answer = []
    words = {}
    
    for i in range(len(s)):
        current = s[i]
        if current in words:
            # 만일 해당 문자가 dict에 있다.
            answer.append((i-words[current]))
            words[current] = i
        else:
            # 처음 나온 문자다.
            answer.append(-1)
            words[current] = i
    
    return answer

'algorithm > 코딩 테스트' 카테고리의 다른 글

콜라 문제, python  (0) 2023.06.03
크기가 작은 부분 문자열, python  (0) 2023.06.03
카드 뭉치, python  (0) 2023.06.03
기사단원의 무기  (0) 2023.06.02
프로그래머스, 덧칠하기(python)  (0) 2023.06.02