[ 2023-08-19 ๐Ÿ TIL ]

Burkeyยท2023๋…„ 8์›” 19์ผ
0

TIL

๋ชฉ๋ก ๋ณด๊ธฐ
145/157

ํ”„๋กœ๊ทธ๋ž˜๋จธ์Šค LV. 1 ์ˆซ์ž ๋ฌธ์ž์—ด๊ณผ ์˜๋‹จ์–ด


๋ฌธ์ œ

๋„ค์˜ค์™€ ํ”„๋กœ๋„๊ฐ€ ์ˆซ์ž๋†€์ด๋ฅผ ํ•˜๊ณ  ์žˆ์Šต๋‹ˆ๋‹ค. 
๋„ค์˜ค๊ฐ€ ํ”„๋กœ๋„์—๊ฒŒ ์ˆซ์ž๋ฅผ ๊ฑด๋„ฌ ๋•Œ ์ผ๋ถ€ ์ž๋ฆฟ์ˆ˜๋ฅผ ์˜๋‹จ์–ด๋กœ ๋ฐ”๊พผ ์นด๋“œ๋ฅผ ๊ฑด๋„ค์ฃผ๋ฉด 
ํ”„๋กœ๋„๋Š” ์›๋ž˜ ์ˆซ์ž๋ฅผ ์ฐพ๋Š” ๊ฒŒ์ž„์ž…๋‹ˆ๋‹ค.

๋‹ค์Œ์€ ์ˆซ์ž์˜ ์ผ๋ถ€ ์ž๋ฆฟ์ˆ˜๋ฅผ ์˜๋‹จ์–ด๋กœ ๋ฐ”๊พธ๋Š” ์˜ˆ์‹œ์ž…๋‹ˆ๋‹ค.

1478 โ†’ "one4seveneight"
234567 โ†’ "23four5six7"
10203 โ†’ "1zerotwozero3"

์ด๋ ‡๊ฒŒ ์ˆซ์ž์˜ ์ผ๋ถ€ ์ž๋ฆฟ์ˆ˜๊ฐ€ ์˜๋‹จ์–ด๋กœ ๋ฐ”๋€Œ์–ด์กŒ๊ฑฐ๋‚˜, 
ํ˜น์€ ๋ฐ”๋€Œ์ง€ ์•Š๊ณ  ๊ทธ๋Œ€๋กœ์ธ ๋ฌธ์ž์—ด s๊ฐ€ ๋งค๊ฐœ๋ณ€์ˆ˜๋กœ ์ฃผ์–ด์ง‘๋‹ˆ๋‹ค. 
s๊ฐ€ ์˜๋ฏธํ•˜๋Š” ์›๋ž˜ ์ˆซ์ž๋ฅผ return ํ•˜๋„๋ก solution ํ•จ์ˆ˜๋ฅผ ์™„์„ฑํ•ด์ฃผ์„ธ์š”.

์ฐธ๊ณ ๋กœ ๊ฐ ์ˆซ์ž์— ๋Œ€์‘๋˜๋Š” ์˜๋‹จ์–ด๋Š” ๋‹ค์Œ ํ‘œ์™€ ๊ฐ™์Šต๋‹ˆ๋‹ค.
์ˆซ์ž์˜๋‹จ์–ด
0zero
1one
2two
3three
4four
5five
6six
7seven
8eight
9nine

์ œํ•œ์‚ฌํ•ญ

* 1 โ‰ค s์˜ ๊ธธ์ด โ‰ค 50
* s๊ฐ€ "zero" ๋˜๋Š” "0"์œผ๋กœ ์‹œ์ž‘ํ•˜๋Š” ๊ฒฝ์šฐ๋Š” ์ฃผ์–ด์ง€์ง€ ์•Š์Šต๋‹ˆ๋‹ค.
* return ๊ฐ’์ด 1 ์ด์ƒ 2,000,000,000 ์ดํ•˜์˜ ์ •์ˆ˜๊ฐ€ ๋˜๋Š” ์˜ฌ๋ฐ”๋ฅธ ์ž…๋ ฅ๋งŒ s๋กœ ์ฃผ์–ด์ง‘๋‹ˆ๋‹ค.

์ฝ”๋“œ

def solution(s):
    num = {"zero" : "0" ,"one" : "1","two" : "2"
    		,"three" : "3","four" : "4","five" : "5"
            ,"six" : "6","seven" : "7","eight" : "8"
            ,"nine" : "9"}
    i = 0
    result = ''
    num_val = num.values()
    
    while (i < len(s)):
        if (s[i] in num_val):
            result += s[i]
            i += 1
        else: 
        # ์•ž์˜ ๋‘๊ธ€์ž ๋น„๊ตํ•˜์—ฌ ํ•ด๋‹น ์ˆซ์ž ๋„ฃ์–ด์ฃผ๊ธฐ
        # ๋ฌธ์ž์—ด์˜ ๊ธธ์ด๋งŒํผ i ์ด๋™ํ•ด์ฃผ๊ธฐ    
            if(s[i:i+2] == 'ze'):
                result += '0'
                i += 4
            elif(s[i:i+2] == 'on'):
                result += '1'
                i += 3
            elif(s[i:i+2] == 'tw'):
                result += '2'
                i += 3
            elif(s[i:i+2] == 'th'):
                result += '3'
                i += 5
            elif(s[i:i+2] == 'fo'):
                result += '4'
                i += 4
            elif(s[i:i+2] == 'fi'):
                result += '5'
                i += 4
            elif(s[i:i+2] == 'si'):
                result += '6'
                i += 3
            elif(s[i:i+2] == 'se'):
                result += '7'
                i += 5
            elif(s[i:i+2] == 'ei'):
                result += '8'
                i += 5
            elif(s[i:i+2] == 'ni'):
                result += '9'
                i += 4
    return int(result)
profile
์Šคํƒฏ ์˜ฌ๋ฆฌ๋Š” ์ค‘

0๊ฐœ์˜ ๋Œ“๊ธ€