[프로그래머스] 2021 KaKao Intern 숫자 문자열과 영단어 in Python

박준규·2021년 12월 13일
0

알고리즘

목록 보기
5/39

문제풀러가기!
올해 초에 카카오 인턴을 봤었고 그때도 풀었던 문제입니다. 어려운 문제는 아니었습니다. 누구나 쉽게 풀 수 있는 문제입니다.

단지 복습할 겸 문제를 다시 한 번 풀어봤어요. 다른 분들도 다들 쉽게 접근하셨을 겁니다.

문제의 아이디어는 숫자에 대한 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를 꼭 활용해봐야겠습니다.

profile
'개발'은 '예술'이고 '서비스'는 '작품'이다

0개의 댓글