numStr=['zero', 'one','two','three','four','five',
'six','seven','eight','nine']
def str2numStr(s):
result=0
for i in range(len(numStr)):
if s == numStr[i]:
result=i
break
return str(result)
def is_str_digit(str):
if str in numStr:
return True
else:
return False
def solution(str):
answer = []
temp = []
for i in range(len(str)):
if str[i].isdigit():
if i>0 and temp:
target = ''.join(temp)
answer.append(str2numStr(target))
temp=[]
answer.append(str[i])
else :
target = ''.join(temp)
if is_str_digit(target):
temp = []
temp.append(str[i])
answer.append(str2numStr(target))
else:
temp.append(str[i])
if temp :
target = str2numStr(''.join(temp))
answer.append(target)
return int(''.join(answer))
문자 하나하나가 숫자를 나타내는지 확인해서 맞으면 숫자로 변환함
문자와 숫자 쌍을 나타낸 딕셔너리를 기준으로 문자열을 치환하는 것이 핵심인데, 핵심을 놓친 것 같다..
🔑 모범 답안
def solution(str):
answer =''
dic = {"zero":0, "one":1, "two":2, "three":3, "four":4,
"five":5, "six":6, "seven":7, "eight":8, "nine":9}
for key, value in dic:
answer = answer.replace(key,value)
return answer
def xxx(str): # 매개변수도 str
temp = str(1) # string 형변환 함수도 str
...