[프로그래머스][Python] 숫자 문자열과 영단어 Review
2021. 10. 21. 23:49 - 프론트맨
문제

위의 표처럼 매개변수(S)로 숫자와 영단어가 혼합된 문장이 주어지면
모두 숫자로 변환해서 리턴하는 문제다.
풀이
word_to_num = {
"zero": "0",
"one": "1",
"two": "2",
"three": "3",
"four": "4",
"five": "5",
"six": "6",
"seven": "7",
"eight": "8",
"nine": "9"
}
def solution(s):
res = ""
word = ""
for char in s:
word += char
if word.isdigit():
res += word
word = ""
elif word in word_to_num.keys():
res += word_to_num[word]
word = ""
return int(res)
1. 영단어를 숫자로 변환해 줄 딕셔너리를 만든다.
2. 문자열을 반복문에 넣어서 한 글자씩 word(빈 문자열)에 더한다.
3. 만약 word가 숫자면 res(결과)에 word를 더한다.
그리고 word를 초기화한다.
.isdigit() 메서드는 숫자가 문자열로 표현되어있으면 True를 반환한다.
ex) '1'.isdigit() == True
'a'.isdigit() == False
'1a'.isdigit() == True
4. 만약(elif) word가 딕셔너리의 key값 중에 있으면 그 key의 value를 res에 더한다.
그리고 word를 초기화한다.
5. 위의 두 개의 조건문에 해당하지 않으면 word는 그대로 놔둔다.