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 |
Tags
- MySQL LEFT()
- @RequestMapping과 @GetMapping
- 정규화 장단점
- Spring Security 5
- 기사단원의 무기 파이썬
- www.google.com 검색하면 일어나는 일
- Python 1000000007
- java 동기화
- DDL DML DCL 차이
- 이코테2021
- MySQL RIGHT()
- PCB
- Spring Security 버전 문제
- OOP의 특징
- 기사단원의 무기 제곱근
- 달리기 경주 파이썬 시간초과
- 달리기 경주 파이썬
- 웹 동작 과정
- finalize 수동 호출
- 알고리즘 1000000007 나누기
- RDBMS와 NoSQL 차이
- commit message convention
- 백트래킹
- 스프링 부트와 AWS로 혼자 구현하는 웹 서비스
- 프로그래머스 142086
- 빌드관리도구 차이
- build.gradle 설정 오류
- 프로세스
- 빌드관리도구
- 모듈로 연산
Archives
- Today
- Total
BUILD_SSO
[프로그래머스] 142086 가장 가까운 같은 글자 python 본문
문제링크: https://school.programmers.co.kr/learn/courses/30/lessons/142086
예제 입력:
"banana"
"footbal"
예제 출력:
[-1, -1, -1, 2, 2, 2]
[-1, -1, 1, -1, -1, -1]
주어진 문자열 's'에 대해 문자열 내에서 이전에 나타난 위치와의 차이를 계산하고, 그 결과를 answer로 return하는 문제이다.
파이썬 내장함수인 enumerate와 dictionary 타입을 쓰면 문제가 쉽게 해결된다.
enumerate
리스트의 원소에 순서값을 부여해주는 함수이다.
for index, word in enumerate(s):
print(index, word)
위와 같이 문자열 s를 enumerate 함수를 사용해 index, word로 원소를 출력하면,
s = "banana" 인 경우
0 b
1 a
2 n
3 a
4 n
5 a
와 같이 출력된다.
dictionary
딕셔너리는 키(key)와 값(value)으로 한 쌍의 대응 관계를 가지고 있는 자료형이다.
예를 들면 "a" : 1, "b" : "2" 이런식으로 "a"라는 Key가 열쇠고 그 "a"의 값으로 "1"라는 것이 쌍을 이루는 자료형 이다.
정답코드:
def solution(s):
answer = []
dict = {}
for index, word in enumerate(s):
if word not in dict:
answer.append(-1)
dict[word] = index
else:
answer.append(index - dict[word])
dict[word] = index
return answer
'Problem Solving > Algorithm' 카테고리의 다른 글
[프로그래머스] 달리기 경주 Python 풀이(시간초과 해결, dictionary 사용) (0) | 2023.06.14 |
---|---|
[프로그래머스] 기사단원의 무기 Python 풀이(제곱근 이용) (0) | 2023.06.03 |
[백준] 15649 N과 M(1) python - DFS, 백트래킹 (0) | 2023.03.25 |
[백준] 14889 스타트와 링크 python - 백트래킹, 조합 (0) | 2023.03.24 |
[백준] 14888 연산자 우선순위 python - 구현, 백트래킹 (0) | 2023.03.22 |
Comments