알고리즘
[Swift 알고리즘] - 핸드폰 번호 가리기
Peppo
2022. 5. 3. 11:02
728x90
https://programmers.co.kr/learn/courses/30/lessons/12948
코딩테스트 연습 - 핸드폰 번호 가리기
프로그래머스 모바일은 개인정보 보호를 위해 고지서를 보낼 때 고객들의 전화번호의 일부를 가립니다. 전화번호가 문자열 phone_number로 주어졌을 때, 전화번호의 뒷 4자리를 제외한 나머지 숫자
programmers.co.kr
내 풀이
func solution(_ phone_number:String) -> String {
var numberArr = [Character]()
var frontNumber: String = ""
var lastNumber: String = ""
// TODO: [x] 전체번호 *로 바꾸기
for _ in phone_number {
numberArr.append("*")
}
// TODO: [x] 앞번호 갯수 만큼 가져오기
numberArr.removeSubrange(numberArr.count - 4..<numberArr.count)
frontNumber = String(numberArr)
// TODO: [x] 뒷번호만 가져오기
lastNumber = String(phone_number.suffix(4))
return frontNumber + lastNumber
}
solution("01011111234")
다른사람의 풀이
func solution(_ phone_number:String) -> String {
return String("\(String(repeating: "*", count: phone_number.count - 4))\(phone_number.suffix(4))")
}
- (repeating:count:)를 사용해서 번호 전체 - 4 만큼을 *로 변환 합니다.
- suffix를 사용해서 맨 뒤부터 4번째까지의 String을 가져옵니다.
배운것
(repeating:count:)
repeating에는 반복하고 싶은 요소를, count에는 반복할 횟수를 입력합니다.
print(String(repeating: "ㅎ", count: 3))
// Print "ㅎㅎㅎ"
suffix(_:)
배열의 길이에서 괄호 안에 들어가는 숫자만큼 뒤에서 요소(elements)들을 가져옵니다.
let numbers = [1, 2, 3, 4, 5]
print(numbers.suffix(2))
// Prints "[4, 5]"
print(numbers.suffix(10))
// Prints "[1, 2, 3, 4, 5]"
728x90