코딩익힘책 #2 숫자 문자열과 영단어
나의 코드
def solution(s):
dic1 = {
0:'zero',
1:'one',
2:'two',
3:'three',
4:'four',
5:'five',
6:'six',
7:'seven',
8:'eight',
9:'nine'
}
dic2 = ['0','1','2','3','4','5','6','7','8','9']
answer = ''
char_num = ''
count = 0
for char in s:
if char.isalpha():
char_num += char
count += 1
for i in range(10):
if char_num == dic1[i]:
answer += dic2[i]
count = 0
char_num = ''
else:
answer += char
return int(answer)
베스트 코드
def solution(s):
num_dic = {
"zero":"0",
"one":"1",
"two":"2",
"three":"3",
"four":"4",
"five":"5",
"six":"6",
"seven":"7",
"eight":"8",
"nine":"9"
}
answer = s
for key, value in num_dic.items():
answer = answer.replace(key, value)
return int(answer)
느낀 점
단어로 된 숫자를 아라비아 숫자로 변환시키는 문제였다.
배열을 확인하며 숫자가 아닐 경우 해당 알파벳을 스트링 변수에 하나하나 담는다.
그 이후 숫자를 만날 경우 현재까지 쌓인 알파벳들을 딕셔너리 키값으로 사용하여 아라비아 숫자를 얻고 현재 알파벳이 아닌 숫자를 추가로 담아 최종 답을 구현한다.
이에 반복문을 자주 사용하여 굉장히 구리다는 것을 느꼈다.
베스트 코드의 경우 아주 파이썬처럼 코드를 구성했다.
반복문을 통해 key값과 value값을 하나씩 뽑아서 key인 단어에 해당하는 부분을 value로 교체했다.
내장함수들의 종류가 어떤 것이 있는지 공부해야겠다.
Author And Source
이 문제에 관하여(코딩익힘책 #2 숫자 문자열과 영단어), 우리는 이곳에서 더 많은 자료를 발견하고 링크를 클릭하여 보았다 https://velog.io/@kimtothechang/코딩익힘책-2-숫자-문자열과-영단어저자 귀속: 원작자 정보가 원작자 URL에 포함되어 있으며 저작권은 원작자 소유입니다.
우수한 개발자 콘텐츠 발견에 전념 (Collection and Share based on the CC Protocol.)