프로그래머스 알고리즘 문제 기록/Lv. 1
핸드폰 번호 가리기
Lust3r
2024. 5. 14. 11:49
728x90
문제
https://school.programmers.co.kr/learn/courses/30/lessons/12948
프로그래머스
코드 중심의 개발자 채용. 스택 기반의 포지션 매칭. 프로그래머스의 개발자 맞춤형 프로필을 등록하고, 나와 기술 궁합이 잘 맞는 기업들을 매칭 받으세요.
programmers.co.kr
내 답안 / 다른 사람들의 답안
func solution(_ phone_number:String) -> String {
return phone_number.enumerated().map { $0.offset < phone_number.count - 4 ? "*" : String($0.element) }.joined()
}
- 필요한 만큼만 변경하면 되기 때문에 enumerated로 element와 offset의 짝으로 묶고, offset이 phone_number의 뒷 네자리 위치가 아니라면 마스킹을, 맞다면 원래 문자를 담아 joined로 String화 한 뒤 반환했다.
// 풀이 1
func solution(_ phone_number:String) -> String {
return String("\(String(repeating: "*", count: phone_number.count - 4))\(phone_number.suffix(4))")
}
// 풀이 2
func solution(_ phone_number:String) -> String {
return String(repeating:"*", count:phone_number.count-4)+phone_number.suffix(4)
}
- Array(repeating, count)와 replace 등을 시도하다가 실패했는데, String의 repeating과 suffix를 활용해서 풀 수 있음을 알게 되었다.