728x90
문제 설명
영어가 싫은 머쓱이는 영어로 표기되어있는 숫자를 수로 바꾸려고 합니다. 문자열 numbers가 매개변수로 주어질 때, numbers를 정수로 바꿔 return 하도록 solution 함수를 완성해 주세요.
제한사항
- numbers는 소문자로만 구성되어 있습니다.
- numbers는 "zero", "one", "two", "three", "four", "five", "six", "seven", "eight", "nine" 들이 공백 없이 조합되어 있습니다.
- 1 ≤ numbers의 길이 ≤ 50
- "zero"는 numbers의 맨 앞에 올 수 없습니다.
입출력 예numbersresult
"onetwothreefourfivesixseveneightnine" | 123456789 |
"onefourzerosixseven" | 14067 |
입출력 예 설명
입출력 예 #1
- "onetwothreefourfivesixseveneightnine"를 숫자로 바꾼 123456789를 return합니다.
입출력 예 #1
- "onefourzerosixseven"를 숫자로 바꾼 14067를 return합니다.
def solution(numbers):
answer = ""
s =""
dic = {"zero" : 0, "one" : 1, "two" : 2, "three" : 3, "four" : 4, "five" : 5, "six" : 6, "seven" : 7, "eight" : 8, "nine" : 9}
#한 글자씩 빼서 딕셔너리의 키 값과 대조
#찾는다면 숫자 추가 하고 문자열에 슬라이싱 연산
for i in range(len(numbers)):
s += numbers[i]
if s in dic:
answer += str(dic[s])
s = ""
return int(answer)
딕셔너리를 사용해 키 값으로 문자열을 찾는 방법을 사용했다.
슬라이싱 연산을 사용하려 해봤지만 굳이 사용하지 않아도 문제를 풀 수 있을것 같아서 사용하지 않았다.
s = "" 문장을 사용해 가져왔던 문자열을 빈공간으로 다시 바꿔주고 핵심적인 문법은
if s in dic 라는 문법으로 in 이라는 키워드의 사용 방법을 좀 더 기억해 둘 필요가 있을 것 같다.
728x90
'Study > CodingTest' 카테고리의 다른 글
[Programmers] Lv.0 - 다음에 올 숫자 (0) | 2023.01.12 |
---|---|
[Programmers] Lv.0 - 삼각형의 완성조건 (1) (0) | 2023.01.02 |
[Programmers] Lv.1 - 기사단원의 무기 (0) | 2022.11.17 |
[Programmers] Lv.1 - 과일장수 (0) | 2022.11.17 |
[이코테/Python] 2장 구현 - 왕실의 나이트 (0) | 2022.11.17 |