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


날짜: 2021년 7월 12일
소요 시간: 18분 18초
카테고리: 문자열
태그: 레벨1, 파이썬

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

입출력 예시

sresult
“one4seveneight”1478
“23four5six7”234567
“2three45sixseven”234567
“123”123

내가 적은 코드

def solution(s):
    number = ["zero", "one", "two", "three", "four", "five", "six", "seven", "eight", "nine"]
    for i,j in enumerate(number):
        s = s.replace(j, str(i))
    return int(s)

풀이 과정

숫자를 나타내는 영문자를 리스트 number에 저장한 뒤, enumerate 함수를 활용하여
숫자 값을 i에 저장하고, 문자를 j에 저장하여 반복한 다음, replace함수를 활용해서 영어로 된 문자열과 숫자를 치환한다.

베스트 코드

def solution(s):
    numbers=['zero','one','two','three','four','five','six','seven','eight','nine']
    answer=""
    for idx, num in enumerate(numbers):
        if num in s:
            s = s.replace(num, str(idx))
        answer = s

    return int(answer)

반성

  • if num in s를 통해 예외처리를 해줘 시간을 줄인다는 발상을 하지 못했다.




© 2021. by hminkim