Algorithm/프로그래머스

프로그래머스 - 핸드폰 번호 가리기 (Swift, Level1)

Brad_Heo 2022. 11. 15. 11:03

문제 👇

https://school.programmers.co.kr/learn/courses/30/lessons/12948

문자열에서 요소들을 바꾸꺼나 인덱스를 찾을 수 있는 능력이 있는가가 중점된 내용인 것 같다.

문제설명 📝

프로그래머스 모바일은 개인정보 보호를 위해 고지서를 보낼 때 고객들의 전화번호의 일부를 가립니다.
전화번호가 문자열 phone_number로 주어졌을 때, 전화번호의 뒷 4자리를 제외한 나머지 숫자를 전부 *으로 가린 문자열을 리턴하는 함수, solution을 완성해주세요.

제한사항 💡

  • phone_number는 길이 4 이상, 20이하인 문자열입니다.

입출력 예

phone_number return
"01033334444" "***4444"
"027778888" *****8888

문제풀이 ✅

빈 배열을 만들어서 해당 인덱스에 따른 특정한 값을 넣는 방식으로 해결해보았다.

문제풀이 답

func solution(_ phone_number:String) -> String {
    var answer = ""

    let count = phone_number.count
    let last = phone_number.prefix(count - 4)

    for i in last {
        answer += "*"
    }
    answer += phone_number.suffix(4)

    return String(answer)
}

다른 사람의 문제풀이 ✅

func solution(_ phone_number:String) -> String {
    return String("\(String(repeating: "*", count: phone_number.count - 4))\(phone_number.suffix(4))")
}

repeating의 이해도가 부족해서 위의 방식대로 진행하지 않았던 것 같다.

repeating이란 특정 문자열을 갯수만큼 추가하는 메소드 이다.

사용방법

let result = String(repeating: "*", count: 5)
print(result) // "*****"