coding test - python/Programmers

Programmers / 숫자 문자열과 영단어 / Python

sillon 2022. 4. 8. 16:03
728x90
반응형

 

*문제 출처는 프로그래머스에 있습니다.

문제 제목: 숫자 문자열과 영단어

문제 사이트:  https://programmers.co.kr/learn/courses/30/lessons/81301


풀이 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'
    }
    for key, value in nums.items():
        s = s.replace(key,value)

    return int(s)

 

풀이 2

리스트 리플레이스 ( 인덱스와 해당 문자열이 같은 것 이용)

def solution(s):
    words = ['zero', 'one', 'two', 'three', 'four', 'five', 'six', 'seven', 'eight', 'nine']

    for i in range(len(words)):
        s = s.replace(words[i], str(i))

    return int(s)

 

풀이 3

딕셔너리 이용

def solution(s):
    answer = ''
    string = ''
    dict = {'zero':0, 'one':1, 'two':2, 'three':3, 'four':4, 'five':5,
                 'six':6, 'seven':7, 'eight':8, 'nine':9}
    for i in s:
        if i.isdigit():
            answer += i
        else:
            string += i
            if string in dict.keys():
                answer += str(dict[string])
                string = ''
            
    return int(answer)

※ 알아야 할 것

- 문자열에 대한 딕셔너리 key, value 개념 정리

728x90
반응형