[Python] 프로그래머스 lv1 - 가장 가까운 같은 글자
2023. 12. 28. 14:38ㆍ알고리즘/문제풀이
[Python] 프로그래머스 lv1 - 가장 가까운 같은 글자
https://school.programmers.co.kr/learn/courses/30/lessons/142086
프로그래머스
코드 중심의 개발자 채용. 스택 기반의 포지션 매칭. 프로그래머스의 개발자 맞춤형 프로필을 등록하고, 나와 기술 궁합이 잘 맞는 기업들을 매칭 받으세요.
programmers.co.kr
문제 설명
- 최근 dictionary 사용하는 법을 알게 되어서 dictionary를 적용해서 풀이
- 주어진 문자열을 set으로 중복 글자를 제거한 뒤 리스트로 변환
- 딕셔너리에 각 처음 등장하는 경우 값을 -1로 세팅
- 반복문 실행
- if dic[s[i]]==-1인 경우
- answer에 해당 값 삽입 -> -1인 경우 처음 등장하였기 때문이다
- else 아닌 경우
- 글자의 idx, i에서 dic[s[i]]를 뺀 값을 answer에 삽입
- dic [s [i]] = i로 dictionary 내부의 값 초기화
- if dic[s[i]]==-1인 경우
풀이 코드
def solution(s):
answer = []
dic={}
s1 = list(set(s))
for i in s1:
if i not in dic:
dic[i] =-1
for i in range(len(s)):
if s[i] in dic and dic[s[i]]==-1:
answer.append(dic[s[i]])
else:
answer.append(i - dic[s[i]])
dic[s[i]] = i
return answer
'알고리즘 > 문제풀이' 카테고리의 다른 글
[Python] 프로그래머스 lv2 - 두 큐 합 같게 만들기 (2) | 2024.01.02 |
---|---|
[Python] 프로그래머스 lv2 - 숫자 변환하기 (0) | 2023.12.29 |
[Python] 프로그래머스 lv2 - 연속된 부분 수열의 합 (0) | 2023.12.27 |
[Python] 프로그래머스 lv1 - 로또 최고 순위와 최저 순위 (0) | 2023.12.26 |
[Python] 프로그래머스 lv1 - 달리기 경주 (0) | 2023.12.26 |