문제풀러가기!
올해 초에 카카오 인턴을 봤었고 그때도 풀었던 문제입니다. 어려운 문제는 아니었습니다. 누구나 쉽게 풀 수 있는 문제입니다.
단지 복습할 겸 문제를 다시 한 번 풀어봤어요. 다른 분들도 다들 쉽게 접근하셨을 겁니다.
문제의 아이디어는 숫자에 대한 dictionary를 먼저 만들고 난 뒤에 주어진 문자열을 순회하면서 쌓인 문자열이 설정한 dictionary의 key값에 있다면, 바로 숫자로 변경해주는 아이디어 입니다. 물론 replace 메소드를 활용해서 빠르게 푸신분들도 있어요. 하지만, 전 그렇게 안풀었습니다... 아래는 제가 푼 코드입니다.
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 = []
sub_string = []
for string in s:
if string.isdigit():
answer.append(string)
else:
sub_string.append(string)
key = "".join(sub_string)
if key in num_dic.keys():
answer.append(num_dic[key])
sub_string = []
return int("".join(answer))
if __name__ == "__main__":
print(solution("one4seveneight"))
print(solution("23four5six7"))
print(solution("2three45sixseven"))
print(solution("123"))
제 코드는 좀 번잡하죠...?ㅋㅋㅋㅋㅋ 나중에 문자열 풀 때 replace를 꼭 활용해봐야겠습니다.