반응형
https://school.programmers.co.kr/learn/courses/30/lessons/142086
프로그래머스
코드 중심의 개발자 채용. 스택 기반의 포지션 매칭. 프로그래머스의 개발자 맞춤형 프로필을 등록하고, 나와 기술 궁합이 잘 맞는 기업들을 매칭 받으세요.
programmers.co.kr
def solution(s):
dic = {}
result = []
for i, c in enumerate(s):
if dic.get(c) == None:
result.append(-1)
else:
result.append(i - dic[c])
dic[c] = i
return result
먼저 문자가 등장했는지 확인하기 위하여 dic(딕셔너리)를 초기화합니다.
enumerate()함수를 사용하여 반복문을 진행할 때 문자의 인덱스(i)와 문자(c)를 하나씩 꺼내옵니다.
dic.get(c) 함수를 사용하여 문자(c)가 dic(딕셔너리)에 있는지 확인합니다.
이때 None이 나왔다면 문자(c)가 처음 나온것이기 때문에
result 리스트에 -1을 추가해줍니다.
만약 None이 아니라면
문자가 이전에 등장했단 것이기 때문에 현재 인덱스(i)와 dic[c]에 저장된 값(이전의 인덱스)을 빼서 result에 저장합니다.
조건문을 진행하고 dic[c]에 다시 현재 인덱스(i)를 저장합니다.
반응형
'코딩테스트' 카테고리의 다른 글
[코딩테스트] 프로그래머스 카테고리 별 도서 판매량 집계하기 MySQL (0) | 2022.12.18 |
---|---|
[코딩테스트] 프로그래머스 조건에 맞는 도서 리스트 출력하기 MySQL (0) | 2022.12.17 |
[코딩테스트] 프로그래머스 상품을 구매한 회원 비율 구하기 MySQL (0) | 2022.12.15 |
[코딩테스트] 프로그래머스 짝지어 제거하기 파이썬(Python) (0) | 2022.12.14 |
[코딩테스트] 프로그래머스 오프라인/온라인 판매 데이터 통합하기 MySQL (0) | 2022.12.12 |