본문 바로가기
📖 Coding Test/Programmers LV.0

[프로그래머스 LV.0] 영어가 싫어요

by hyebin (Helia) 2023. 1. 10.

영어가 싫어요

문제 설명

영어가 싫은 머쓱이는 영어로 표기되어있는 숫자를 수로 바꾸려고 합니다. 문자열 numbers가 매개변수로 주어질 때, numbers를 정수로 바꿔 return 하도록 solution 함수를 완성해 주세요.

제한 사항

  • numbers는 소문자로만 구성되어 있습니다.
  • numbers는 "zero", "one", "two", "three", "four", "five", "six", "seven", "eight", "nine" 들이 공백 없이 조합되어 있습니다.
  • 1 ≤ numbers의 길이 ≤ 50
  • "zero"는 numbers의 맨 앞에 올 수 없습니다.

입출력 예

numbers result
"onetwothreefourfivesixseveneightnine" 123456789
"onefourzerosixseven" 14067

입출력 예 설명

입출력 예 #1

  • "onetwothreefourfivesixseveneightnine"를 숫자로 바꾼 123456789를 return 합니다.

입출력 예 #2

  • "onefourzerosixseven"를 숫자로 바꾼 14067를 return합니다.
 

제출

import Foundation

func solution(_ numbers:String) -> Int64 {
    var numbers = numbers
    var string_num = ["zero": "0", "one": "1", "two": "2", "three": "3", "four": "4", "five": "5", "six": "6", "seven": "7", "eight": "8", "nine": "9"]
    
    for i in string_num{
        numbers = numbers.replacingOccurrences(of: i.key, with: String(i.value))
    }
    return Int64(numbers)!
}
영어를 key, 숫자를 value로 갖는 딕셔너리 string_num을 선언한다.
replacingOccurrences 함수를 사용해, 입력받은 문자열이 딕셔너리의 key를 갖고 있는 경우 value 값으로 변환한다.
이후 문자열을 Int64형으로 변환해 반환한다.
반응형

댓글