개발을 시작하는 이야기

[프로그래머스] 핸드폰 번호 가리기 본문

개발 이야기/Algorithm Study

[프로그래머스] 핸드폰 번호 가리기

Teiresias 2022. 4. 21. 20:08

문제 설명

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

제한 조건

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

예시

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

Solution.Swift

func solution(_ phone_number:String) -> String {
    var number = phone_number
    number.replaceSubrange(number.startIndex..<number.index(number.endIndex, offsetBy: -4), with: repeatElement("*", count: number.count-4))
    
    return number
}
  1. 휴대폰 번호를 받을 지역변수를 선언
  2. 문자열을 대채할 범위 설정 (ednIndex -4)
  3. 대체할 문자열 설정 "*"
  4. 대체할 갯수 설정

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

번호를 받아 번호의 문자를 *로 대체하는 방식을 사용했지만, 굳이 그럴 필요는 없었다.

필요한 만큼의 * 문자열을 만들어주고 4자리의 숫자만 추가하는 방식도 깔끔하고 좋아 보였다.

 

[프로그래머스 테스트]