DecordRay

[프로그래머스] Level1 : 가장 가까운 같은 글자[Python] 본문

알고리즘/프로그래머스

[프로그래머스] Level1 : 가장 가까운 같은 글자[Python]

DecordRay 2023. 2. 2. 14:09
728x90
반응형

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

 

프로그래머스

코드 중심의 개발자 채용. 스택 기반의 포지션 매칭. 프로그래머스의 개발자 맞춤형 프로필을 등록하고, 나와 기술 궁합이 잘 맞는 기업들을 매칭 받으세요.

programmers.co.kr

슬라이싱을 활용할 줄 알면 손쉽게 풀 수 있는 문제

*Tip - 슬라이싱에 대해 알고싶다면? - https://decordray.tistory.com/39 참고

 

풀이 :

1. s의 길이만큼 반복문을 진행하면서 매 반복 시점마다 s[i]와 같은 문자가 앞에 있는지를 판별하기 위한 chk변수 초기화

2. 내부 반복문(두번째 for문)을 통해 s[i]와 같은 문자가 앞에 있었는지 확인

  • s[i]와 같은 문자가 앞에 있을 경우 : temp에서 거리를 카운트하고 있었으므로 answer에 temp 추가
  • s[i]와 같은 문자가 앞에 없을 경우 : 내부 반복문을 종료한 후 chk = False이므로 answer에 -1 추가

 

코드 :

def solution(s):
    answer = []
    for i in range(len(s)):
        temp = 0
        chk = False
        for j in range(len(s[:i])-1,-1,-1):
            temp += 1
            if s[j] == s[i]:
                answer.append(temp)
                chk = True
                break
        if chk == False:
            answer.append(-1)
    return answer

 

728x90
반응형
Comments