본문 바로가기

알고리즘/Lv. 1

프로그래머스 142086 가장 가까운 같은 글자 파이썬 풀이

728x90

난이도 : Lv. 1

풀이일 : 2506043

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

 

프로그래머스

SW개발자를 위한 평가, 교육의 Total Solution을 제공하는 개발자 성장을 위한 베이스캠프

programmers.co.kr


문제


아이디어

  • 딕셔너리에 등장한 글자들의 인덱스를 저장하자
  • 현재 글자가 딕셔너리에 있다면 인덱스의 차를, 없다면 -1을 answer 배열에 추가하자

풀이 코드

def solution(s):
    answer = []
    alphabet = {} # 글자 인덱스를 저장할 딕셔너리
    
    for i in range(len(s)):
        char = s[i]
        # 현재 인덱스 - 이전 등장 인덱스
        # 처음 등장한 글자라면 -1
        d = i - alphabet[char] if char in alphabet else -1
        answer.append(d)
        alphabet[char] = i # 딕셔너리에 인덱스 추가

    return answer

실행 결과

 


느낀점

  • 스터디에서 문제를 정해 푸니까 기초만 풀게 되는데, 요즘엔 딕셔너리 사용해서 많이 푸는 것 같다.
  • 다른 언어로도 기초 문제들 풀어야지