level2_가장 가까운 같은 글자
2024. 3. 13. 22:20ㆍ파이썬_알고리즘(코딩테스트)/level2


내가 제출한 코드(참고도.. 많이 했다.)
def solution(s):
answer = []
s_dic = {}
for i in range(len(s)):
if s[i] not in s_dic:
answer.append(-1)
else:
answer.append(i- s_dic[s[i]])
s_dic[s[i]] = i
return answer
코드 설명을 해보자면
if s[i] not in s_dic: s[i]가 s_dic에 없다면 answer에 -1을 추가하고
s_dic에 있다고 하면 i - s-dic[s[i]]를 빼준다.
이렇게 봐서는 사실 이해가 잘 안돼서 나는 노트에 하나하나 다 적어주면서 이해를 했다.

진짜.. 이해가 안되면 노트에 하나하나 적어보면... 이해가 가긴하는거 같다..ㅠㅠ
다른 사람이 제출한 코드
def solution(s):
answer = []
dict = {}
for index, word in enumerate(s):
if word not in word:
answer.append(-1)
else:
answer.append(index - dict[word])
dict[word] = index
return answer
다른 분이 작성하신 코드를 보니 enumerate를 사용해서 (인덱스, 요소)를 바로 뽑아 코드에 적용한거 같다.
오히려 이 코드가 가독성은 더 좋은거 같다.
'파이썬_알고리즘(코딩테스트) > level2' 카테고리의 다른 글
| level2_카펫 (0) | 2024.03.07 |
|---|---|
| level2_짝지어 제거하기 (0) | 2024.03.05 |
| level2_피보나치 수 (0) | 2024.02.29 |
| level2_다음 큰 숫자 (0) | 2024.02.27 |
| level2_숫자의 표현 (0) | 2024.02.25 |