본문 바로가기
프로그래머스/1단계

(Python/LV1)가장 가까운 같은 글자

by windy7271 2022. 12. 18.
728x90
반응형

문제출처: https://school.programmers.co.kr/learn/courses/30/lessons/142086

 

풀이:

def solution(s):
    res =[]
    for i in range(0,len(s)):
        if s[i] not in s[:i]:
            res.append(-1)
        else:
            str = s[:i][::-1]
            res.append(str.find(s[i]) + 1)
    return res

 

else 문은

만약 ban / a 일때

가장 가까운 a를 찾아야하므로 뒤집어진 ban를 닮을 str를 만들어주고

find로 가장 가까이 있는 인덱스 찾아서 인덱스는 0 부터 시작하니 1 을 더해줘서 리턴

 

 

다른 방법으로는 딕셔너리 방법이있음

 

def solution(s):
    answer = []
    dic = dict()
    for i in range(len(s)):
        if s[i] not in dic:
            answer.append(-1)
        else:
            answer.append(i - dic[s[i]])
        dic[s[i]] = i

    return answer

 

반응형

댓글