programmers Level1 (3)

Q: 숫자와 영자로 입력된 숫자가 섞인 문자열을 숫자로 변환하라 ex) "one4seveneight" → 1478

나의답안

def solution(s):
    ls = ['zero','one','two','three','four','five','six','seven','eight','nine']
    for i in range(len(ls)):
        if ls[i] in s:
            s=s.replace(ls[i],str(i))
    
    answer = int(s)
    return answer

최고답안

num_dic = {"zero":"0", "one":"1", "two":"2", "three":"3", "four":"4", "five":"5", "six":"6", "seven":"7", "eight":"8", "nine":"9"}

def solution(s):
    answer = s
    for key, value in num_dic.items():
        answer = answer.replace(key, value)
    return int(answer)

느낀점: 새벽에 다음날 할 코딩테스트를 미리 보는 느낌으로 코드를 입력했다가 생각보다 짧은 시간에 풀어버려 포스팅을 하게 되었다. 이 문제는 리스트에 치환할 값을 입력 후 for 문으로 replace하여 문제를 해결하였다. 나의 답안과 똑같은 답안이 좋아요 2위의 답안인걸 보니 옳은 방향으로 문제를 푼것같아 기분이 좋았다. 최고 답안은 dictionary 자료형을 사용하여 풀었다. zero를 키로, value로 0을 넣어 풀 수 있구나, 생각해보니까 키,값으로 대칭 되어있다는 것을 알 수 있었다. 다른이의 문제풀이를 보고 이런 방식으로도 접근할 수 있구나 라는 것을 배우게 되었다.

좋은 웹페이지 즐겨찾기