본문 바로가기

Algorithm/String

(Python3) - 프로그래머스(코딩테스트 입문) : 영어가 싫어요

반응형

https://school.programmers.co.kr/learn/courses/30/lessons/120894

 

프로그래머스

SW개발자를 위한 평가, 교육, 채용까지 Total Solution을 제공하는 개발자 성장을 위한 베이스캠프

programmers.co.kr

문자열을 다뤄본 문제였습니다.

📕 풀이방법

📔 입력 및 초기화

1. 정답 변수 answer 선언 후 0으로 초기화합니다.

 

2. 문자열마자 나타내는 숫자를 각각 key와 value로 저장할 hash map변수 num_dict를 선언해 적절히 초기화합니다.

 

3. 매칭되는 문자를 찾을때마다 flush해줄 지역변수 str 선언 후 빈 문자열로 초기화합니다.

📔 풀이과정

numbers의 원소를 순회하며 다음을 진행합니다.

 

1. str에 문자를 붙여줍니다.

 

2. str이 num_dict의 key와 일치하다면 answer에 value를 더해주고 answer는 10곱해주며 str을 flush해줍니다.

📔 정답 출력 | 반환

10이 한번더 곱해졌으므로 answer 를 10으로 정수 나누기한 값을 반환합니다.


📕 Code

📔 Python3

def solution(numbers):
    answer = 0
    num_dict = {
        "zero": 0, 
        "one": 1, 
        "two": 2, 
        "three": 3, 
        "four": 4, 
        "five": 5, 
        "six": 6, 
        "seven": 7, 
        "eight": 8, 
        "nine": 9
    }
    str = ""
    for char in numbers:
        str += char
        if num_dict.get(str) is not None:
            answer += num_dict[str]
            answer *= 10
            str = ""
    return answer // 10

*더 나은 내용을 위한 지적, 조언은 언제나 환영합니다.