문제 설명
네오와 프로도가 숫자놀이를 하고 있습니다. 네오가 프로도에게 숫자를 건넬 때 일부 자릿수를 영단어로 바꾼 카드를 건네주면 프로도는 원래 숫자를 찾는 게임입니다.
다음은 숫자의 일부 자릿수를 영단어로 바꾸는 예시입니다.
- 1478 → "one4seveneight"
- 234567 → "23four5six7"
- 10203 → "1zerotwozero3"
이렇게 숫자의 일부 자릿수가 영단어로 바뀌어졌거나, 혹은 바뀌지 않고 그대로인 문자열 s가 매개변수로 주어집니다. s가 의미하는 원래 숫자를 return 하도록 solution 함수를 완성해주세요.
https://programmers.co.kr/learn/courses/30/lessons/81301
문제 풀이
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을 이용한 문자열 교체는 쉽게 떠올릴 수 있었습니다.
문자열을 정수로 바꿔주는 과정은 접해본 적이 없는 코드라 이부분은 검색을 통해 해결할 수 있었습니다.
'Coding Test' 카테고리의 다른 글
Programmers.K번째수 (Swift) (0) | 2022.03.29 |
---|---|
Progammers.음양 더하기 (Swift) (0) | 2022.03.29 |
Programmers.없는 숫자 더하기 (Swift) (0) | 2022.03.28 |
Progammers.로또의 최고 순위와 최저 순위 (Swift) (0) | 2022.03.28 |
Programmers.신규 아이디 추천 (Swift) (0) | 2022.03.28 |
댓글