반응형
Level 1 연습문제
핸드폰 번호 가리기
문제
프로그래머스 모바일은 개인정보 보호를 위해 고지서를 보낼 때 고객들의 전화번호의 일부를 가립니다.
전화번호가 문자열 phone_number로 주어졌을 때, 전화번호의 뒷 4자리를 제외한 나머지 숫자를 전부 *으로 가린 문자열을 리턴하는 함수, solution을 완성해주세요.
제한조건
phone_number는 길이 4 이상, 20 이하인 문자열입니다.
모범답안 😊
func solution(_ phone_number:String) -> String {
return String(repeating:"*", count:phone_number.count-4)+phone_number.suffix(4)
}
오우.. 이런 방법이..!
swift에서도 String을 저렇게 쓸 수 있구나..
suffix(_:) 뒤에서 부터 몇 글자만큼
func suffix(_ maxLenth: Int) -> Substring
내 답안 😣
func solution(_ phone_number:String) -> String {
var arr = Array(phone_number)
var arrr = [Character](repeating: "*", count: (arr.count-4))
arr.removeFirst(arr.count-4)
arrr += arr
return String(arrr)
}
실패한 코드 🤢
처음에 문자열을 배열로 바꾼 후 뒤에서 다섯번째 자리까지 *로 치환해줬는데 테스트 9에서 오류가 났다. 왜????
제한 조건을 잘 보자..! 핸드폰 번호라고 해서 방심했는데 문자열 길이는 4 이상부터였던 것이다..
그래서 아마도 길이가 4인 테스트 케이스에서 반복문의 조건이 0 <= -1 로 되어버려 실패를 한 것 같다.
728x90
반응형
'Algorithm > Programmers' 카테고리의 다른 글
[Swift 알고리즘] Programmers 하샤드 수 (0) | 2022.01.10 |
---|---|
[Swift 알고리즘] Programmers x만큼 간격이 있는 n개의 숫자 (0) | 2022.01.08 |
[Swift 알고리즘] Programmers 제일 작은 수 제거하기 (0) | 2022.01.05 |
[Swift 알고리즘] Programmers 기초 문제들 (0) | 2022.01.04 |
[Swift 알고리즘] Programmers 문자열 다루기 기본 (0) | 2021.04.10 |