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