파이썬/코딩테스트

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

대전집주인 2024. 3. 23. 16:41
728x90
SMALL

 

문제 이해

  • 문장을 받아 한글자씩 같은 글자가 있는지 비교를 한다.
  • 비교했을 때 같은 글자가 없다면 -1
  • 같은 글자가 있다면 거리값이 리스트에 들어간다.
  • 같은 글자가 2개 이상 있다면 가까이에 있는 값이 리스트에 들어간다.
  • 비교는 현재 글자 인덱스보다 작은것만 비교한다.

제한사항에 문장의 길이는 10,000 으로 제곱이 되어도 시간복잡도상 문제가 없을거 같아 완전탐색으로 풀었다.

 

def solution(s):
    # 첫번째 리스트 값은 무조건 -1이다.
    answer = [-1]
    
    for i in range(1, len(s)):
      index = []
      count = 0
      for j in range(0, i):
        if s[i] == s[j]:
          index.append(i-j)
          count += 1
      if count == 0:
        answer.append(-1)
      else:
        answer.append(min(index))
    return answer
728x90
LIST