코딩테스트

숫자 문자열과 영단어

서창호 2022. 1. 24. 23:52

https://programmers.co.kr/learn/courses/30/lessons/81301

 

코딩테스트 연습 - 숫자 문자열과 영단어

네오와 프로도가 숫자놀이를 하고 있습니다. 네오가 프로도에게 숫자를 건넬 때 일부 자릿수를 영단어로 바꾼 카드를 건네주면 프로도는 원래 숫자를 찾는 게임입니다. 다음은 숫자의 일부 자

programmers.co.kr

zero ~ nine 을 가지고 있는 리스트를 선언한 뒤, for loop을 돌면서 s 안의 해당 문자열을 대체하고 싶었는데....

string.replace() 함수가 기억이 안나서 C코드로 푼다는 생각으로 단순무식하게 풀었다...

python 기본 함수들에 좀 익숙해질 필요가 있다...

def solution(s):
    answer = ""
    
    idx = 0
    while idx < len(s):
        if s[idx].isdigit():
            answer += s[idx]
            idx += 1
        elif s[idx:idx+4] == "zero":
            answer += "0"
            idx += 4
        elif s[idx:idx+3] == "one":
            answer += "1"
            idx += 3
        elif s[idx:idx+3] == "two":
            answer += "2"
            idx += 3
        elif s[idx:idx+5] == "three":
            answer += "3"
            idx += 5
        elif s[idx:idx+4] == "four":
            answer += "4"
            idx += 4
        elif s[idx:idx+4] == "five":
            answer += "5"
            idx += 4
        elif s[idx:idx+3] == "six":
            answer += "6"
            idx += 3
        elif s[idx:idx+5] == "seven":
            answer += "7"
            idx += 5
        elif s[idx:idx+5] == "eight":
            answer += "8"
            idx += 5
        elif s[idx:idx+4] == "nine":
            answer += "9"
            idx += 4
        
    return int(answer)