반응형

문제 출처
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) |
반응형
'IT > CodingTest' 카테고리의 다른 글
[programmers] '등수 매기기' 문제 해설 및 정답코드 (0) | 2025.03.27 |
---|---|
[programmers] 'OX퀴즈' 문제를 가장 간단하게 푸는 방법 (0) | 2025.03.27 |
[programmers] '삼각형의 완성조건(2)' 문제 해설 및 정답코드 (0) | 2025.03.25 |
[programmers] '공 던지기' 문제 해설 및 정답코드 (0) | 2025.03.20 |
[programmers] '2차원으로 만들기' 문제해설 (0) | 2025.03.18 |
[programmers] '주사위의 개수' 문제해설 (0) | 2025.03.17 |
[programmers] '외계행성의 나이' 문제 간단하게 풀기 (1) | 2025.02.27 |
[programmers] '가위 바위 보' 문제를 푸는 여러 가지 방법 (0) | 2025.02.25 |
댓글