본문 바로가기
프로그래머스/Python

[프로그래머스] 가장 가까운 같은 글자 - 파이썬(Python) - 우당탕탕 개발자 되기 프로젝트

by 우당탕탕 개발자 2023. 7. 12.
728x90
반응형

 

 

프로그래머스

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

programmers.co.kr

 

1. 문제 설명

2. 풀이과정

  1. 추출한 글자를 저장하기 위한 리스트를 생성한다. word = list()
  2. 입력받은 문자열의 각 문자를 하나씩 추출한다. for i in s
  3. 만약 추출한 글자 리스트에 추출한 문자가 있다면 if (i  in word)
  4. 처음 나온 문자가 아니므로 같은 글자가 몇 칸 앞에 있는지 구한다. 무조건 앞에 있으므로 거리를 저장할 변수를 생성하고 1로 초기화한다. count = 1
  5. 추출한 글자 리스트의 제일 뒤부터 문자를 하나씩 추출한다. for j in range(len(answer) - 1, -1, -1)
  6. 만약 추출한 문자를 글자 리스트에서 찾으면 if (s[j] == i)
  7. 같은 문자가 몇 칸 앞에 있는지 추가한다. answer.append(count)
  8. 가장 가까운 같은 글자를 찾았으므로 종료한다. break
  9. 반면에 추출한 문자가 글자 리스트의 문자와 다르면 더 앞에 있으므로 거리를 1 증가시킨다. else: count += 1
  10. 반면에 처음 나온 글자라면 -1을 추가한다. else: answer.append(-1)
  11. 문자열에서 추출한 문자는 모두 글자 리스트에 추가한다. word.append(i)
반응형

3. 소스코드

def solution(s):
    answer = []
    
    word = list()
    for i in s:
        if (i in word):
            count = 1
            for j in range(len(answer) - 1, -1, -1):
                if (s[j] == i):
                    answer.append(count)
                    break
                else:
                    count += 1
        else:
            answer.append(-1)

        word.append(i)
                
    return answer
728x90
반응형