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
- mysql
- 구현
- 개념
- 백엔드
- LEVEL2
- 백준
- 9252
- Kakao
- LEVEL1
- gold5
- Thymeleaf
- java
- AWS
- 프로그래머스
- leetcode 69
- jpa
- glod4
- gold2
- spring
- error
- PYTHON
- 오류
- HTML
- glod5
- LCS
- leetcode
- Gold4
- 배포
- CSS
- siver3
Archives
- Today
- Total
이 험난한 세상에서어어~
가장 가까운 같은 글자, python 본문
문제 설명
주어진 문자열의 문자를 확인할 때, 만일 현재의 문자의 위치와 같은 문자지만 제일 가까운 문자와의 거리 차이를 구하는 문제다. 만일 문자가 처음 나왔으면 -1을 붙인다.
https://school.programmers.co.kr/learn/courses/30/lessons/142086
문제 풀이
첫 번째 풀이
문제를 보자마자 dict를 사용해야 겠다고 생각했다. 문자열에서 문자를 하나씩 검사하는데, 만일 dict에 들어가 있으면 해당 값을 가지고 와서 현재의 인덱스와의 차이를 구한 후 정답에 붙인다. 그리고 해당 문자의 위치를 새로 갱신한다. 그리고 처음 나온 문자면 -1을 붙이고 마찬가지로 위치를 갱신하면 된다.
코드
def solution(s):
answer = []
words = {}
for i in range(len(s)):
current = s[i]
if current in words:
# 만일 해당 문자가 dict에 있다.
answer.append((i-words[current]))
words[current] = i
else:
# 처음 나온 문자다.
answer.append(-1)
words[current] = i
return answer
'algorithm > 코딩 테스트' 카테고리의 다른 글
콜라 문제, python (0) | 2023.06.03 |
---|---|
크기가 작은 부분 문자열, python (0) | 2023.06.03 |
카드 뭉치, python (0) | 2023.06.03 |
기사단원의 무기 (0) | 2023.06.02 |
프로그래머스, 덧칠하기(python) (0) | 2023.06.02 |