[ํ”„๋กœ๊ทธ๋ž˜๋จธ์Šค-Lv1] ์ˆซ์ž ๋ฌธ์ž์—ด๊ณผ ์˜๋‹จ์–ด / Python

๐Ÿ“š Problem Solving/Programmers

 

์ฝ”๋”ฉํ…Œ์ŠคํŠธ ์—ฐ์Šต - ์ˆซ์ž ๋ฌธ์ž์—ด๊ณผ ์˜๋‹จ์–ด

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

programmers.co.kr

alpha = ["zero", "one", "two", "three", "four", "five", "six", "seven", "eight", "nine"]


def solution(s):
    start = 0
    end = 1
    answer = ""
    while start < len(s):
        if s[start].isdigit():
            answer += s[start]
            start = end
            end += 1
            continue
        if s[start:end] in alpha:
            answer += str(alpha.index(s[start:end]))
            start = end
            end += 1
        else:
            end += 1
    return int(answer)


s = input()
print(solution(s))

 

ํ•ด์„ค

์นด์นด์˜ค ์ฑ„์šฉ์—ฐ๊ณ„ํ˜• ์ธํ„ด์‹ญ์— ๋‚˜์™”๋˜ ๋ฌธ์ œ๋‹ค. ๊ทธ ๋‹น์‹œ์—๋Š” ๋ชปํ’€์—ˆ๋Š”๋ฐ ์ง€๊ธˆ์€ ๋„ˆ๋ฌด๋‚˜ ์‰ฝ๊ฒŒ ํ’€์–ด๋ฒ„๋ ธ๋‹ค..๐Ÿ˜‚ ์ฝ”๋”ฉํ…Œ์ŠคํŠธ๋„ ์—ญ์‹œ ์ปจ๋””์…˜์— ๋”ฐ๋ผ ๊ฒฐ๊ณผ๊ฐ€ ๋‹ฌ๋ผ์ง„๋‹ค.

 

์ธ๋ฑ์Šค๋Š” start์™€ end๋กœ ๋‚˜๋ˆ ์ง€๊ณ  ์ˆซ์ž์ผ ๊ฒฝ์šฐ์—๋Š” s[start], ์•ŒํŒŒ๋ฒณ์„ ํ™•์ธํ•  ๊ฒฝ์šฐ์—๋Š” s[start:end]๋กœ ํ™•์ธ์„ ํ•œ๋‹ค.

์ˆซ์ž์ด๊ฑฐ๋‚˜, ์ผ์น˜ํ•˜๋Š” ์•ŒํŒŒ๋ฒณ์ด ์žˆ์„ ๊ฒฝ์šฐ์—๋Š” start๋ฅผ end๋กœ end๋Š” end+1๋กœ ๋ฐ”๊ฟ”์ค€ ํ›„, ๋‹ค์‹œ ๋น„๊ต๋ฅผ ํ•œ๋‹ค.

์ผ์น˜ํ•˜๋Š” ์•ŒํŒŒ๋ฒณ์ด ์—†์„ ๊ฒฝ์šฐ์—๋Š” end๋ฅผ ํ•˜๋‚˜์”ฉ ๋Š˜๋ ค๊ฐ€๋ฉฐ ๋น„๊ต๋ฅผ ํ•œ๋‹ค.