반응형
Notice
Recent Posts
Recent Comments
Link
일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
1 | 2 | 3 | ||||
4 | 5 | 6 | 7 | 8 | 9 | 10 |
11 | 12 | 13 | 14 | 15 | 16 | 17 |
18 | 19 | 20 | 21 | 22 | 23 | 24 |
25 | 26 | 27 | 28 | 29 | 30 | 31 |
Tags
- 유사코드
- Tree
- 유한소수 판별하기
- 알고리즘의 조건 5가지
- 자료구조
- 코딩 테스트
- 알고리즘의 조건
- 알고리즘
- itertools
- LV.1
- list
- 리스트
- 들여쓰기로 표현한 트리
- 트리
- 자바
- 큐
- 알고리즘 표현
- 코딩테스트
- 스택
- 프로그래머스
- import itertools
- java
- html
- Import
- Combination
- 과일 장수
- python
- 좋은 알고리즘
- 파이썬
- 태그
Archives
- Today
- Total
인천의 자유인
[Python] 가장 가까운 같은 글자 - 프로그래머스(Lv.1) 본문
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
반응형
'Python > Python코딩테스트' 카테고리의 다른 글
[Python] 두 개 뽑아서 더하기 - 프로그래머스(Lv.1) (0) | 2024.06.10 |
---|---|
[Python] 숫자 문자열과 영단어 - 프로그래머스(Lv.1) (0) | 2024.06.05 |
[Python] 시저 암호 - 프로그래머스(Lv.1) (0) | 2024.05.29 |
[Python] 최소 직사각형 - 프로그래머스(Lv.1) (0) | 2024.05.27 |
[Python] 예산 - 프로그래머스(Lv.1) (0) | 2024.05.24 |