알고리즘/Programmers
[Swift_Programmes] 핸드폰 번호 가리기
YEN_
2023. 11. 23. 12:04
프로그래머스 문제 링크 : https://school.programmers.co.kr/learn/courses/30/lessons/12948
프로그래머스
코드 중심의 개발자 채용. 스택 기반의 포지션 매칭. 프로그래머스의 개발자 맞춤형 프로필을 등록하고, 나와 기술 궁합이 잘 맞는 기업들을 매칭 받으세요.
programmers.co.kr
풀이
func solution(_ phone_number:String) -> String {
let openNumber = phone_number.suffix(4)
var star = ""
(phone_number.prefix(phone_number.count-4)).map { _ in star += "*" }
return String("\(star)\(openNumber)")
}
중요 개념
- Index를 기준으로 문자를 자를 수 있는 메서드가 있다
- prefix(_:) -> 문자열의 앞부분부터 자른다
- https://developer.apple.com/documentation/swift/string/prefix(_:)
- suffix(_:) -> 문자열의 뒷부분부터 자른다
- https://developer.apple.com/documentation/swift/string/suffix(_:)
다른 사람의 풀이
func solution(_ phone_number:String) -> String {
return String("\(String(repeating: "*", count: phone_number.count - 4))\(phone_number.suffix(4))")
}
- init(repeating:count:) -> 문자열을 주어진 횟수만큼 반복하는 메서드
- 나도 찾아서 썼던 건데.. 잊어버렸었다. 코드의 길이 차이가 대박이다. 배운건 확실히 기억하는게 중요하다는 걸 다시 절감했다.