영문으로된 숫자 (one two..)와 정수 (0~9)를 input
으로 받아서 숫자를 output
으로 return하는 문제
input
으로 받은 문자열의 index값을 하나씩 체크하면서 숫자로 변환시켜 return하는 방법을 생각함.
def solution(s): answer = ''; i = 0; while i < len(s): if s[i].isalpha(): if s[i] == 'z': answer += '0' i = i + 4 elif s[i] == 'o': answer += '1' i = i + 3 elif s[i] == 't': if s[i+1] == 'w': answer += '2' i = i + 3 else: answer += '3' i = i + 5 elif s[i] == 'f': if s[i+1] == 'o': answer += '4' i = i + 4 else: answer += '5' i = i + 4 elif s[i] == 's': if s[i+1] == 'i': answer += '6' i = i + 3 else: answer += '7' i = i + 5 elif s[i] == 'e': answer += '8' i = i + 5 else: answer += '9' i = i + 4 else: answer += s[i] i = i + 1 return int(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)
모범코드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)
문제점