본문 바로가기
Coding Test

Programmers.숫자 문자열과 영단어 (Swift)

by iOS_woo 2022. 3. 28.

문제 설명

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

다음은 숫자의 일부 자릿수를 영단어로 바꾸는 예시입니다.

  • 1478 → "one4seveneight"
  • 234567 → "23four5six7"
  • 10203 → "1zerotwozero3"

이렇게 숫자의 일부 자릿수가 영단어로 바뀌어졌거나, 혹은 바뀌지 않고 그대로인 문자열 s가 매개변수로 주어집니다. s가 의미하는 원래 숫자를 return 하도록 solution 함수를 완성해주세요.

 

https://programmers.co.kr/learn/courses/30/lessons/81301

 

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

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

programmers.co.kr

 

문제 풀이

import Foundation

func solution(_ s:String) -> Int {
    let number = s
        .replacingOccurrences(of: "zero", with: "0")
        .replacingOccurrences(of: "one", with: "1")
        .replacingOccurrences(of: "two", with: "2")
        .replacingOccurrences(of: "three", with: "3")
        .replacingOccurrences(of: "four", with: "4")
        .replacingOccurrences(of: "five", with: "5")
        .replacingOccurrences(of: "six", with: "6")
        .replacingOccurrences(of: "seven", with: "7")
        .replacingOccurrences(of: "eight", with: "8")
        .replacingOccurrences(of: "nine", with: "9")
    
    return Int(number)!
}

 

코드 설명

1. replacingOccurrences

문자열을 교체해주는 함수입니다. of: ""를 with: ""로 교체합니다. 

 

2. Int(number)

String을 Int로 변환해줍니다. Int를 String으로 변환할 수도 있습니다.

let toString = String(Int) // 123 -> "123"
let toInt = Int(String) // "123" -> 123

 

소감

프로그래머스 신규 아이디 추천 문제를 먼저 풀었던 덕분에 replacingOccurrences을 이용한 문자열 교체는 쉽게 떠올릴 수 있었습니다. 

문자열을 정수로 바꿔주는 과정은 접해본 적이 없는 코드라 이부분은 검색을 통해 해결할 수 있었습니다. 

 

 

댓글