Archive/Questions

[programmers/Swift] 숫자 문자열과 영단어 (2020 카카오 채용 연계형 인턴쉽)

Marco 2022. 5. 8. 17:31
728x90

programmers.co.kr - 코딩테스트연습 - Lv.1 - 2020 카카오 채용연계형 인턴쉽 - 숫자 문자열과 영단어

 

코딩테스트 연습 - 숫자 문자열과 영단어

네오와 프로도가 숫자놀이를 하고 있습니다. 네오가 프로도에게 숫자를 건넬 때 일부 자릿수를 영단어로 바꾼 카드를 건네주면 프로도는 원래 숫자를 찾는 게임입니다. 다음은 숫자의 일부 자

programmers.co.kr

Constraints :

  • 1 ≤ s의 길이 ≤ 50
  • s가 "zero" 또는 "0"으로 시작하는 경우는 주어지지 않습니다.
  • return 값이 1 이상 2,000,000,000 이하의 정수가 되는 올바른 입력만 s로 주어집니다.

 

Solution.swift :

//
//  Created by Yongwoo Marco on 2022/05/08.
//  Copyright © 2022 Yongwoo Marco Kim. All rights reserved.
//

func solution(_ s:String) -> Int {
    var wordBasket = "", result = ""
    let wordTable = ["zero":"0", "one":"1", "two":"2", "three":"3", "four":"4",
                     "five":"5", "six":"6", "seven":"7", "eight":"8", "nine":"9"]
    
    s.forEach { char in
        if char.isNumber {
            result.append(String(char))
        } else {
            wordBasket.append(String(char))
            if let number = wordTable[wordBasket] {
                result.append(number)
                wordBasket = ""
            }
        }
    }
    return Int(result)!
}

print(solution("one4seveneight")) // 1478
print(solution("23four5six7")) // 234567
print(solution("2three45sixseven")) // 234567
print(solution("123")) // 123

How I tried this :
각 문자를 방문해서 체크하는 형태로 구현함

문자 확인용 temp를 두고 문자 숫자를 찾아냄

문제에 관한 모든 저작권 : https://programmers.co.kr/

728x90