본문 바로가기
IT/CodingTest

[programmers] '영어가 싫어요' 문제 해설 및 정답코드

by Echinacea 2025. 3. 25.
반응형



 

 

 

문제 출처

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

 

프로그래머스

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

programmers.co.kr

 

 

✅ 문제 설명

영어로 쓰여 있는 숫자 단어가 붙어 있는 문자열이 주어졌을 때, 이 문자열을 실제 숫자로 바꾸는 문제입니다. 예를 들어 "onefourzerosixseven"이라는 문자열이 주어지면, 각각의 단어를 숫자로 바꿔서 14067이라는 숫자를 만들어야 합니다.


 

 

🔍 예시

numbers 결과

"onetwothreefourfivesixseveneightnine" 123456789
"onefourzerosixseven" 14067

 

 

🧠 어떻게 풀 수 있을까?

 

🔹 어떤 단어가 어떤 숫자인지 정리하기

먼저 영어 단어와 숫자를 매칭해서 정리해 둡니다.

영어 단어 숫자

zero 0
one 1
two 2
three 3
four 4
five 5
six 6
seven 7
eight 8
nine 9

이제 이 단어들을 문자열 안에서 찾아서 해당 숫자로 바꾸기만 하면 됩니다.


 

 

🔹 문자열 바꾸기: replace 함수 사용

파이썬에는 문자열을 바꿔주는 replace() 함수가 있습니다. 예를 들어,

"onetwo".replace("one", "1")
# 결과: "1two"

이런 식으로 한 단어씩 차례대로 숫자로 바꿔주면 전체 문자열이 숫자로만 이루어지게 됩니다.


 

 

💻 최종 코드

def solution(numbers):
    num_dict = {
        "zero": "0",
        "one": "1",
        "two": "2",
        "three": "3",
        "four": "4",
        "five": "5",
        "six": "6",
        "seven": "7",
        "eight": "8",
        "nine": "9"
    }

    for word, digit in num_dict.items():
        numbers = numbers.replace(word, digit)

    return int(numbers)

 

 

🔢 예제 확인

 

예제 1

solution("onetwothreefourfivesixseveneightnine")
  • 단어를 하나씩 숫자로 바꾸면 → "123456789"
  • 정수로 변환하면 결과는 123456789

 

예제 2

solution("onefourzerosixseven")
  • 바꾼 결과 → "14067"
  • 정수로 변환하면 결과는 14067

 

 

✅ 정리

항목 설명

문제 유형 문자열 처리
주요 기능 문자열 바꾸기 (replace)
핵심 아이디어 영어 단어를 숫자로 바꿔주는 딕셔너리 활용
반환 형식 정수형 숫자 (int)

 

반응형

댓글