티스토리 뷰
문제 설명
네오와 프로도가 숫자놀이를 하고 있습니다. 네오가 프로도에게 숫자를 건넬 때 일부 자릿수를 영단어로 바꾼 카드를 건네주면 프로도는 원래 숫자를 찾는 게임입니다.
다음은 숫자의 일부 자릿수를 영단어로 바꾸는 예시입니다.
1478 → "one4seveneight"
234567 → "23four5six7"
10203 → "1zerotwozero3"
이렇게 숫자의 일부 자릿수가 영단어로 바뀌어졌거나, 혹은 바뀌지 않고 그대로인 문자열 s가 매개변수로 주어집니다. s가 의미하는 원래 숫자를 return 하도록 solution 함수를 완성해주세요.
제한 조건
내 답안
func solution(_ s:String) -> Int {
let num: [String: String] = [
"zero": "0",
"one": "1",
"two": "2",
"three": "3",
"four": "4",
"five": "5",
"six": "6",
"seven": "7",
"eight": "8",
"nine": "9"
]
var result = ""
var word = ""
for i in s {
if i.isNumber {
result.append(i)
} else {
word.append(i)
if num[word] != nil {
result.append(num[word]!)
word = ""
}
}
}
return Int(result)!
}
접근 방법
- ["zero":"0" ] 으로 구성된 딕셔너리를 만든 점!
다른 풀이
func solution(_ s:String) -> Int {
let arr = ["zero","one","two","three","four","five","six","seven","eight","nine"]
var str = s
for i in 0..<arr.count {
str = str.replacingOccurrences(of: arr[i], with: String(i))
}
return Int(str)!
}
알게 된 것
- replacingOccurrences : String 함수, 문자열을 다른 문자열로 변경할 때 사용
func replacingOccurrences(of target: String, with replacement: String) -> String
// target : 바꾸려는 문자열 (이것을)
// replacement : 바꿀려는 문자열 (이것으로 바꿈)
let originalString = "Hello World"
let replacedString = originalString.replacingOccurrences(of: " ", with: "-")
print(replacedString) // 출력: "Hello-World"
- string 도 array처럼 쓸 수 있는 부분이 있다는 것 -> for 문, append 사용 가능
https://school.programmers.co.kr/learn/courses/30/lessons/81301
프로그래머스
코드 중심의 개발자 채용. 스택 기반의 포지션 매칭. 프로그래머스의 개발자 맞춤형 프로필을 등록하고, 나와 기술 궁합이 잘 맞는 기업들을 매칭 받으세요.
programmers.co.kr
'코딩테스트' 카테고리의 다른 글
10월 22일 - 가운데 글자 가져오기 (0) | 2023.10.23 |
---|---|
10월 22일 - 160. Intersection of Two Linked Lists swift (0) | 2023.10.23 |
10월 20일 - 음양 더하기 swift (0) | 2023.10.20 |
10월 19일 - 가장 가까운 같은 글자 swift (0) | 2023.10.19 |
10월 19일 - 서울에서 김서방 찾기 swift (0) | 2023.10.19 |
최근에 올라온 글