반응형
일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
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
- C
- 코딩테스트
- 스프링부트
- Python
- 개발자
- Linux
- 백엔드
- 스프링
- 알고리즘
- Elasticsearch
- 운영체제
- 네트워크
- 카카오
- programmers
- 도커
- IT
- 캐시
- 쿠버네티스
- 리눅스
- 프로그래머스 #카카오 #IT #코딩테스트
- DPDK
- docker
- 자바
- 엘라스틱서치
- springboot
- Spring
- Kakao
- Java
- 파이썬
- 프로그래머스
Archives
- Today
- Total
저고데
[프로그래머스]가장 가까운 같은 글자 본문
728x90
반응형
문제 링크 : https://school.programmers.co.kr/learn/courses/30/lessons/142086
프로그래머스
코드 중심의 개발자 채용. 스택 기반의 포지션 매칭. 프로그래머스의 개발자 맞춤형 프로필을 등록하고, 나와 기술 궁합이 잘 맞는 기업들을 매칭 받으세요.
programmers.co.kr
코드를 작성하기 위한 순서는 다음과 같다.
1. 새로운 리스트를 만들어 해당 단어가 리스트에 없다면 answer에 -1를 추가하고 리스트에 단어를 추가한다.
2. 리스트에 해당 단어가 있다면, answer에 index를 뺀 값을 넣어주고 해당 원소를 0으로 만들어준다.
def solution(s):
answer = []
dap=[]
for i in range(len(s)):
if s[i] not in dap: #1번
answer.append(-1)
dap.append(s[i])
else:
answer.append(i-s.index(s[i])) #2번
dap.append(s[i])
s=s.replace(s[i],'0',1) #해당 원소를 한 번만 0으로 만들어주는 이유는 s는 알파벳으로만 이루어져 있기 때문에 해당 원소를 0으로 만들면 없애는 것과 마찬가지이기 때문이다.
#따라서 가장 가까운 index 값을 따로 구하지 않아도 된다.
return answer
index를 replace를 사용하여 없는 원소로 만드는 것이 핵심이었다.
해당 조건에 맞지 않으면 없는 것과 같기 때문에 다른 방법을 사용하지 않고 간단하게 문제를 해결할 수 있었다.
(나름 창의적인 방법을 사용한 것만 같아서 기분이 좋았어욤 ㅎㅎ)
728x90
반응형
'프로그래머스' 카테고리의 다른 글
[프로그래머스]땅따먹기 (0) | 2023.02.03 |
---|---|
[프로그래머스]야근 지수 (0) | 2023.02.02 |
[프로그래머스]귤 고르기 (0) | 2023.02.02 |
[프로그래머스][1차]뉴스 클러스팅 (0) | 2023.02.02 |
[프로그래머스]푸드 파이터 대회 (0) | 2023.02.02 |