본문 바로가기
알고리즘 풀이/프로그래머스

[프로그래머스] 숫자 문자열과 영단어 (python)

by char_lie 2023. 11. 23.
반응형

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

 

프로그래머스

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

programmers.co.kr

숫자 문자열과 영단어 문제

문자를 숫자로 바꾸는 문제

 

#사용 알고리즘

구현

 

📌문제 접근 포인트

1. 숫자가 나오면 숫자, 영단어가 나오면 숫자로 바꿔주면 된다. 이를 위해 딕셔너리 혹은 리스트를 활용하자.

2. 리스트나 딕셔너리를 활용해서 해당 값을 만나면, 변환해주도록 구성하면 끝

⚙ 내가 푼 정답 코드1 (효율 나쁨)

def solution(s):
    nums = {'zero' : '0', 'one' : '1', 'two' : '2', 'three' : '3',
            'four' : '4', 'five' : '5', 'six' : '6', 'seven' : '7',
            'eight' : '8', 'nine' : '9'}
    result = ''
    temp = ''
    for i in s:
        if i in '0123456789':
            result += i
        else:
            temp += i
            if temp in nums:
                result += nums[temp]
                temp = ''
    
    return int(result)

⚙ 내가 푼 정답 코드2

def solution(s):
    nums = ['zero', 'one', 'two', 'three', 'four', 'five', 'six', 'seven', 'eight', 'nine']
    for i, a in enumerate(nums) :
        s = s.replace(a, str(i))
    
    return int(s)
반응형

댓글