λ³Έλ¬Έ λ°”λ‘œκ°€κΈ°

Algorithm/Programmers

[Programmers] 숫자 λ¬Έμžμ—΄κ³Ό μ˜λ‹¨μ–΄

 

 

문제 

 

λ„€μ˜€μ™€ ν”„λ‘œλ„κ°€ μˆ«μžλ†€μ΄λ₯Ό ν•˜κ³  μžˆμŠ΅λ‹ˆλ‹€. λ„€μ˜€κ°€ ν”„λ‘œλ„μ—κ²Œ 숫자λ₯Ό 건넬 λ•Œ 일뢀 자릿수λ₯Ό μ˜λ‹¨μ–΄λ‘œ λ°”κΎΌ μΉ΄λ“œλ₯Ό 건넀주면 ν”„λ‘œλ„λŠ” μ›λž˜ 숫자λ₯Ό μ°ΎλŠ” κ²Œμž„μž…λ‹ˆλ‹€.

λ‹€μŒμ€ 숫자의 일뢀 자릿수λ₯Ό μ˜λ‹¨μ–΄λ‘œ λ°”κΎΈλŠ” μ˜ˆμ‹œμž…λ‹ˆλ‹€.

  • 1478 → "one4seveneight"
  • 234567 → "23four5six7"
  • 10203 → "1zerotwozero3"

μ΄λ ‡κ²Œ 숫자의 일뢀 μžλ¦Ώμˆ˜κ°€ μ˜λ‹¨μ–΄λ‘œ λ°”λ€Œμ–΄μ‘Œκ±°λ‚˜, ν˜Ήμ€ λ°”λ€Œμ§€ μ•Šκ³  κ·ΈλŒ€λ‘œμΈ λ¬Έμžμ—΄ sκ°€ λ§€κ°œλ³€μˆ˜λ‘œ μ£Όμ–΄μ§‘λ‹ˆλ‹€. sκ°€ μ˜λ―Έν•˜λŠ” μ›λž˜ 숫자λ₯Ό return ν•˜λ„λ‘ solution ν•¨μˆ˜λ₯Ό μ™„μ„±ν•΄μ£Όμ„Έμš”.

참고둜 각 μˆ«μžμ— λŒ€μ‘λ˜λŠ” μ˜λ‹¨μ–΄λŠ” λ‹€μŒ ν‘œμ™€ κ°™μŠ΅λ‹ˆλ‹€.

 

0 zero
1 one
2 two
3 three
4 four
5 five
6 six
7 seven
8 eight
9 nine

 

μ œν•œμ‚¬ν•­

 

  • 1 ≤ s의 길이 ≤ 50
  • sκ°€ "zero" λ˜λŠ” "0"으둜 μ‹œμž‘ν•˜λŠ” κ²½μš°λŠ” 주어지지 μ•ŠμŠ΅λ‹ˆλ‹€.
  • return 값이 1 이상 2,000,000,000 μ΄ν•˜μ˜ μ •μˆ˜κ°€ λ˜λŠ” μ˜¬λ°”λ₯Έ μž…λ ₯만 s둜 μ£Όμ–΄μ§‘λ‹ˆλ‹€.

 

 

λ‚˜μ˜ μ½”λ“œ 
def solution(s):
    imp = {'zero': 0, 'one': 1, 'two':2, 'three':3, 'four':4, 'five':5, "six":6, "seven":7, 'eight':8, 'nine':9}
    
    for key in list(imp.keys()):
        k = str(imp[key])
        s = s.replace(key,k)
    return int(s)
뢄석 > 일단 μ˜λ‹¨μ–΄μ™€ μˆ«μžκ°€ μ„œλ‘œ μΌμΉ˜ν•˜λŠ” 것끼리 ν•΄μ‹œλ§΅μ„ λ§Œλ“€κ³  key와 value 값을 μ΄μš©ν•΄ sμ—μ„œ replace 해쀬닀. λ°˜λ³΅λ¬Έμ—μ„œλŠ” ν•΄λ‹Ή key 값이 μžˆλŠ”μ§€λ§Œ μ‚΄νŽ΄λ³΄λŠ” 것이기 λ•Œλ¬Έμ— ν•΄μ‹œλ§΅μ—μ„œ key κ°’λ§ŒμœΌλ‘œ ν™œμš©ν•œ 리슀트둜 λ°˜λ³΅λ¬Έμ„ λŒλ Έλ‹€. 문제λ₯Ό ν’€λ©΄μ„œ imp[key]λ₯Ό λ”°λ‘œ μ €μž₯해두지 μ•Šκ³  κ·ΈλŒ€λ‘œ replace에 λ„£μœΌλ €λ‹€κ°€ λ¬Έμžμ—΄ 'imp[key]' κ·ΈλŒ€λ‘œ λ°”λ€Œμ–΄μ Έμ„œ μ• λ₯Ό λ¨Ήμ—ˆμ—ˆλ‹€. μ΄λ ‡κ²Œ λ”°λ‘œ 값을 μ €μž₯해두고 ν™œμš©ν•˜λŠ” 것을 μžŠμ§€ 말아야겠닀. κ·Έλž˜λ„ 이전에 ν’€ λ•ŒλŠ” λ…Έκ°€λ‹€λ‘œ ν’€μ—ˆλŠ”λ°, ν•΄μ‹œλ§΅μ„ μ΄μš©ν•΄ ν‘Έλ‹ˆ 훨씬 κ°„λ‹¨ν•˜κ³  효율적으둜 ν’€λ €μ„œ λΏŒλ“―ν–ˆλ‹€. 

 

 

 

 

μ½”λ”©ν…ŒμŠ€νŠΈ μ—°μŠ΅ - 숫자 λ¬Έμžμ—΄κ³Ό μ˜λ‹¨μ–΄

λ„€μ˜€μ™€ ν”„λ‘œλ„κ°€ μˆ«μžλ†€μ΄λ₯Ό ν•˜κ³  μžˆμŠ΅λ‹ˆλ‹€. λ„€μ˜€κ°€ ν”„λ‘œλ„μ—κ²Œ 숫자λ₯Ό 건넬 λ•Œ 일뢀 자릿수λ₯Ό μ˜λ‹¨μ–΄λ‘œ λ°”κΎΌ μΉ΄λ“œλ₯Ό 건넀주면 ν”„λ‘œλ„λŠ” μ›λž˜ 숫자λ₯Ό μ°ΎλŠ” κ²Œμž„μž…λ‹ˆλ‹€. λ‹€μŒμ€ 숫자의 일뢀 자

programmers.co.kr