728x90
반응형
1. 문제 설명
2. 풀이과정
- 추출한 글자를 저장하기 위한 리스트를 생성한다. word = list()
- 입력받은 문자열의 각 문자를 하나씩 추출한다. for i in s
- 만약 추출한 글자 리스트에 추출한 문자가 있다면 if (i in word)
- 처음 나온 문자가 아니므로 같은 글자가 몇 칸 앞에 있는지 구한다. 무조건 앞에 있으므로 거리를 저장할 변수를 생성하고 1로 초기화한다. count = 1
- 추출한 글자 리스트의 제일 뒤부터 문자를 하나씩 추출한다. for j in range(len(answer) - 1, -1, -1)
- 만약 추출한 문자를 글자 리스트에서 찾으면 if (s[j] == i)
- 같은 문자가 몇 칸 앞에 있는지 추가한다. answer.append(count)
- 가장 가까운 같은 글자를 찾았으므로 종료한다. break
- 반면에 추출한 문자가 글자 리스트의 문자와 다르면 더 앞에 있으므로 거리를 1 증가시킨다. else: count += 1
- 반면에 처음 나온 글자라면 -1을 추가한다. else: answer.append(-1)
- 문자열에서 추출한 문자는 모두 글자 리스트에 추가한다. 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
반응형
'프로그래머스 > Python' 카테고리의 다른 글
[프로그래머스] 귤 고르기 - 파이썬(Python) - 우당탕탕 개발자 되기 프로젝트 (0) | 2023.07.14 |
---|---|
[프로그래머스] 추억 점수 - 파이썬(Python) - 우당탕탕 개발자 되기 프로젝트 (0) | 2023.07.14 |
[프로그래머스] 콜라 문제 - 파이썬(Python) - 우당탕탕 개발자 되기 프로젝트 (0) | 2023.07.14 |
[프로그래머스] 멀리 뛰기 - 파이썬(Python) - 우당탕탕 개발자 되기 프로젝트 (0) | 2023.07.14 |
[프로그래머스] 푸드 파이트 대회 - 파이썬(Python) - 우당탕탕 개발자 되기 프로젝트 (0) | 2023.07.12 |
[프로그래머스] N개의 최소공배수 - 파이썬(Python) - 우당탕탕 개발자 되기 프로젝트 (0) | 2023.07.12 |
[프로그래머스] 점프와 순간 이동 - 파이썬(Python) - 우당탕탕 개발자 되기 프로젝트 (0) | 2023.07.12 |
[프로그래머스] 구명보트 - 파이썬(Python) - 우당탕탕 개발자 되기 프로젝트 (0) | 2023.07.10 |