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을 넣어 풀 수 있구나, 생각해보니까 키,값으로 대칭 되어있다는 것을 알 수 있었다. 다른이의 문제풀이를 보고 이런 방식으로도 접근할 수 있구나 라는 것을 배우게 되었다.
Author And Source
이 문제에 관하여(programmers Level1 (3)), 우리는 이곳에서 더 많은 자료를 발견하고 링크를 클릭하여 보았다 https://velog.io/@ybc7769/programmers-Level13저자 귀속: 원작자 정보가 원작자 URL에 포함되어 있으며 저작권은 원작자 소유입니다.
우수한 개발자 콘텐츠 발견에 전념 (Collection and Share based on the CC Protocol.)