인천의 자유인

[Python] 가장 가까운 같은 글자 - 프로그래머스(Lv.1) 본문

Python/Python코딩테스트

[Python] 가장 가까운 같은 글자 - 프로그래머스(Lv.1)

Youngook 2024. 6. 2. 11:59
728x90
반응형

 

 

 

나의 문제 풀이

def solution(s):
    answer = []
    a=''
    for i in s:
        a += i
        if a.count(i) == 1:
            answer.append(-1)
        else:
            c = 0
            for j in range(len(a)-1, 0, -1):
                c+=1
                if a[j-1] == i:
                    answer.append(c)
                    break
    return answer

 

마지막에 return할 빈 리스트를 만들어줍니다. 그리고 빈 문자열 a를 만들어 줍니다.

a를 만든 이유는 예를 들어 'banana'일 경우 맨 앞의 a나 n가 -1이 나와야 하는데 전체 문자열로 할 경우에는 count로는 -1를 만들기 힘들 것이라는 판단 때문에 했습니다. ban일 경우 n은 하나밖에 없기 때문에  -1를 할 수 있게 됩니다.

 

그것이 아닐 경우에는 else로 넘어갑니다. a가 bana가 될 경우에는 이젠 a가 하나가 아니게 됩니다. 맨 뒤에 있는 a와 가장 가까운 a와의 거리는 2정도 됩니다. for문은 a의 끝 부터 돌립니다. 그리고 for문이 한 번 돌때 마다 c가 1만큼 증가합니다. 그리고 a[j-1]==i일때 anwer이라는 리스트에 숫자 c를 추가해서 break를 합니다.

728x90
반응형