_Han_
나의 개발 노트
_Han_
  • 분류 전체보기 (272)
    • 데이터 엔지니어링 (29)
    • 인프라 (3)
    • 추천시스템 (11)
    • 코딩테스트 (146)
    • 부트캠프 회고 (15)
    • 회고 (4)
    • 자격증 (1)
    • 파이썬 프로그래밍 (6)
    • 통계 (2)
    • Git (21)
    • 유니티2D (33)

최근 글

반응형
hELLO · Designed By 정상우.
_Han_

나의 개발 노트

[코딩테스트] 프로그래머스 가장 가까운 같은 글자 파이썬(Python)
코딩테스트

[코딩테스트] 프로그래머스 가장 가까운 같은 글자 파이썬(Python)

2022. 12. 15. 16:59
반응형

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
    '코딩테스트' 카테고리의 다른 글
    • [코딩테스트] 프로그래머스 카테고리 별 도서 판매량 집계하기 MySQL
    • [코딩테스트] 프로그래머스 조건에 맞는 도서 리스트 출력하기 MySQL
    • [코딩테스트] 프로그래머스 상품을 구매한 회원 비율 구하기 MySQL
    • [코딩테스트] 프로그래머스 짝지어 제거하기 파이썬(Python)
    _Han_
    _Han_
    학습한 것을 기록합니다.

    티스토리툴바