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