Python/🐍 μ•Œκ³ λ¦¬μ¦˜

ν”„λ‘œκ·Έλž˜λ¨ΈμŠ€ - 'κ°€μž₯ κ°€κΉŒμš΄ 같은 κΈ€μž' [μ½”λ”©ν…ŒμŠ€νŠΈ μ—°μŠ΅]

jo._.on_ 2024. 2. 15. 00:58

# κ°€μž₯ κ°€κΉŒμš΄ 같은 κΈ€μž # 142086 # lv1

 

# 문제


λ¬Έμžμ—΄ sκ°€ μ£Όμ–΄μ‘Œμ„ λ•Œ, s의 κ° μœ„μΉ˜λ§ˆλ‹€ μžμ‹ λ³΄λ‹€ μ•žμ— λ‚˜μ™”μœΌλ©΄μ„œ, μžμ‹ κ³Ό κ°€μž₯ κ°€κΉŒμš΄ κ³³μ— μžˆλŠ” κ°™μ€ κΈ€μžκ°€ μ–΄λ”” μžˆλŠ”μ§€ μ•Œκ³  μ‹ΆμŠ΅λ‹ˆλ‹€.
예λ₯Ό λ“€μ–΄, s="banana"라고 ν•  λ•Œ,  κ° κΈ€μžλ“€μ„ μ™Όμͺ½λΆ€ν„° 였λ₯Έμͺ½μœΌλ‘œ 읽어 λ‚˜κ°€λ©΄μ„œ λ‹€μŒκ³Ό 같이 μ§„ν–‰ν•  수 μžˆμŠ΅λ‹ˆλ‹€.

    bλŠ” μ²˜μŒ λ‚˜μ™”κΈ° λ•Œλ¬Έμ— μžμ‹ μ˜ μ•žμ— κ°™μ€ κΈ€μžκ°€ μ—†μŠ΅λ‹ˆλ‹€. μ΄λŠ” -1둜 ν‘œν˜„ν•©λ‹ˆλ‹€.
    aλŠ” μ²˜μŒ λ‚˜μ™”κΈ° λ•Œλ¬Έμ— μžμ‹ μ˜ μ•žμ— κ°™μ€ κΈ€μžκ°€ μ—†μŠ΅λ‹ˆλ‹€. μ΄λŠ” -1둜 ν‘œν˜„ν•©λ‹ˆλ‹€.
    n은 μ²˜μŒ λ‚˜μ™”κΈ° λ•Œλ¬Έμ— μžμ‹ μ˜ μ•žμ— κ°™μ€ κΈ€μžκ°€ μ—†μŠ΅λ‹ˆλ‹€. μ΄λŠ” -1둜 ν‘œν˜„ν•©λ‹ˆλ‹€.
    aλŠ” μžμ‹ λ³΄λ‹€ λ‘ μΉΈ μ•žμ— aκ°€ μžˆμŠ΅λ‹ˆλ‹€. μ΄λŠ” 2둜 ν‘œν˜„ν•©λ‹ˆλ‹€.
    n도 μžμ‹ λ³΄λ‹€ λ‘ μΉΈ μ•žμ— n이 μžˆμŠ΅λ‹ˆλ‹€. μ΄λŠ” 2둜 ν‘œν˜„ν•©λ‹ˆλ‹€.
    aλŠ” μžμ‹ λ³΄λ‹€ λ‘ μΉΈ, λ„€ μΉΈ μ•žμ— aκ°€ μžˆμŠ΅λ‹ˆλ‹€. μ΄ μ€‘ κ°€κΉŒμš΄ κ²ƒμ€ λ‘ μΉΈ μ•žμ΄κ³ , μ΄λŠ” 2둜 ν‘œν˜„ν•©λ‹ˆλ‹€.

λ”°λΌμ„œ μ΅œμ’… κ²°κ³Όλ¬Όμ€ [-1, -1, -1, 2, 2, 2]κ°€ λ©λ‹ˆλ‹€.

λ¬Έμžμ—΄ s이 μ£Όμ–΄μ§ˆ λ•Œ, μœ„와 κ°™μ΄ μ •μ˜λœ μ—°μ‚°μ„ μˆ˜ν–‰ν•˜λŠ” ν•¨μˆ˜ solution을 μ™„μ„±ν•΄μ£Όμ„Έμš”.

 

# μ œν•œμ‚¬ν•­


1 ≤ s의 길이 ≤ 10,000

  • s은 μ˜μ–΄ μ†Œλ¬Έμžλ‘œλ§Œ 이루어져 μžˆμŠ΅λ‹ˆλ‹€.

 

# 풀이


def solution(s):
    dic1 = {} # key : i번째 sμš”μ†Œ, value = ν•΄λ‹Ή μš”μ†Œμ˜ 인덱슀
    return_list = [] # μ΅œμ’… -1κ³Ό x(간격)이 λ“€μ–΄κ°ˆ 리슀트
    for i in range(len(s)):
        if s[i] in dic1:  # λ§Œμ•½ dic1에 s[i]값이 μžˆλ‹€λ©΄
            return_list.append(i - dic1[s[i]])  # return_list에 i(인덱슀) - dic1[s[i]] (ν•΄λ‹Ή κ°’μ˜ 인덱슀) ν•œ κ²°κ³Όλ₯Ό append.
        else:
            return_list.append(-1)  # λ§Œμ•½ s[i]κ°€ μ—†λ‹€λ©΄, -1 을 append.
        dic1[s[i]] = i  # μ€‘λ³΅λ˜λŠ” μš”μ†Œκ°€ μžˆλ‹€λ©΄, 인덱슀 값을 μ΅œμ‹ ν™”ν•΄μ€˜μ•Ό 함.
        
    return return_list  # μ΅œμ’… return_list 리턴.

 

 

 

 

 

이미지 좜처)

"https://www.flaticon.com/free-icons/flow" Flow icons created by Good Ware - Flaticon