알고리즘/프로그래머스 문제풀이

[프로그래머스] lv.1 숫자 문자열과 영단어 python 풀이

감자156 2023. 10. 17. 19:57
반응형

문제

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

 

프로그래머스

코드 중심의 개발자 채용. 스택 기반의 포지션 매칭. 프로그래머스의 개발자 맞춤형 프로필을 등록하고, 나와 기술 궁합이 잘 맞는 기업들을 매칭 받으세요.

programmers.co.kr

 

문제 풀이

최대한 O(N)으로 만들고자 함.

각 문자열을 쌓아가며 순회하다. word에 존재하는 단어가 나오면 숫자로 대체하여 저장함.

메모리 부분에서는 비효율적일 수도..

 

코드

def solution(s):
    word = {
        'zero':'0',
        'one':'1',
        'two':'2',
        'three':'3',
        'four':'4',
        'five':'5',
        'six':'6',
        'seven':'7',
        'eight':'8',
        'nine':'9'
    }
    res, tmp = '', ''
    for i in range(len(s)):
        if not s[i].isdigit():
            tmp += s[i]
            try:
                res += word[tmp]
                tmp = ''
                continue
            except:
                continue
        
        res += s[i]
    return int(res)
반응형