🧠 κ°€μš΄λ° κΈ€μž κ°€μ Έμ˜€κΈ°

문제

단어 s의 κ°€μš΄λ° κΈ€μžλ₯Ό λ°˜ν™˜ν•˜λŠ” ν•¨μˆ˜λ₯Ό μ™„μ„±ν•˜λΌ. λ‹¨μ–΄μ˜ 길이가 짝수라면 κ°€μš΄λ° λ‘κΈ€μžλ₯Ό λ°˜ν™˜ν•˜λ©΄ λœλ‹€.

  • sλŠ” 길이가 1 이상, 100μ΄ν•˜μΈ μŠ€νŠΈλ§μ΄λ‹€.

λ‚˜μ˜ 풀이

def string_middle(s):
    if len(s)%2 == 0:
        return s[len(s)//2-1:len(s)//2+1]
    return s[len(s)//2]

if문으둜 μ§μˆ˜νŒλ³„μ„ ν•˜κ³  짝수인 κ²½μš°μ—λŠ” κ°€μš΄λ° 두 κΈ€μžλ₯Ό μŠ¬λΌμ΄μ‹±ν•˜μ—¬ λ°˜ν™˜, ν™€μˆ˜μΈ 경우 κ°€μš΄λ° κΈ€μžλ₯Ό λ°˜ν™˜ν•˜λ„λ‘ ν–ˆλ‹€. λ‚˜λ¦„ 짧게 ν’€μ—ˆλ‹€κ³  μƒκ°ν–ˆμ§€λ§Œβ€¦κ·Έκ±°μŠ¨ λ‚˜μ˜ μ°© γ…‹ 각 γ…Ž

λ‹€λ₯Έ μ‚¬λžŒμ˜ 풀이

def string_middle(s):
    return s[(len(s)-1)//2:len(s)//2+1]

예λ₯Ό λ“€μ–΄ s = "abcd" 라면, s의 길이 4μ—μ„œ 1을 λΊ€ κ°’ 3을 2둜 λ‚˜λˆˆ λͺ«μ€ 1이 λœλ‹€. 또 4μ—μ„œ 2둜 λ‚˜λˆˆ κ°’ 2에 1을 λ”ν•˜λ©΄ 3이 λœλ‹€. s[1:3]은 인덱슀 1λΆ€ν„° 2κΉŒμ§€ ν•΄λ‹Ήλ˜λ―€λ‘œ β€œbc”λ₯Ό λ¦¬ν„΄ν•˜κ²Œ λœλ‹€. s = "abced" 라면, s의 길이 5μ—μ„œ 1을 λΊ€ κ°’ 4λ₯Ό 2둜 λ‚˜λˆˆ λͺ«μ€ 2κ°€ λœλ‹€. 또 5μ—μ„œ 2둜 λ‚˜λˆˆ κ°’ 2에 1을 λ”ν•˜λ©΄ 3이 λœλ‹€. s[2:3]은 인덱슀 2λΆ€ν„° 2κΉŒμ§€ ν•΄λ‹Ήλ˜λ―€λ‘œ β€œc”λ₯Ό λ¦¬ν„΄ν•˜κ²Œ λœλ‹€. 주어진 λ¬Έμžμ—΄μ΄ μ§μˆ˜μ΄λ“  ν™€μˆ˜μ΄λ“  2둜 λ‚˜λˆ„μ—ˆμ„ λ•Œ λͺ«μ€ intν˜•μ΄λ―€λ‘œ μœ„μ™€ 같이 쀑간값을 ꡬ할 수 μžˆλ‹€. 인덱슀 μŠ¬λΌμ΄μ‹± κ°œλ…μ„ μ’€ 더 ν™•μ‹€νžˆ μ•Œκ³  μžˆλ‹€λ©΄ 훨씬 μ‰½κ²Œ ν’€μ–΄λ‚Ό 수 μžˆλŠ” λ¬Έμ œμ˜€λ‹€..

References


Written by@ugaemi
Record things I want to remember

🐱 GitHubπŸ“š Reading Space