티스토리 뷰

728x90

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

 

코딩테스트 연습 - 핸드폰 번호 가리기

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

programmers.co.kr

 

 

 

 

 

내 풀이

func solution(_ phone_number:String) -> String {
    var numberArr = [Character]()
    var frontNumber: String = ""
    var lastNumber: String = ""

    // TODO: [x] 전체번호 *로 바꾸기
    for _ in phone_number {
        numberArr.append("*")
    }

    // TODO: [x] 앞번호 갯수 만큼 가져오기
    numberArr.removeSubrange(numberArr.count - 4..<numberArr.count)
    frontNumber = String(numberArr)
    
    // TODO: [x] 뒷번호만 가져오기
    lastNumber = String(phone_number.suffix(4))

    return frontNumber + lastNumber
}

solution("01011111234")

 

 

다른사람의 풀이

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

 

  1. (repeating:count:)를 사용해서 번호 전체 - 4 만큼을 *로 변환 합니다.
  2. suffix를 사용해서 맨 뒤부터 4번째까지의 String을 가져옵니다.

 

배운것 

(repeating:count:)

  repeating에는 반복하고 싶은 요소를, count에는 반복할 횟수를 입력합니다.

 

print(String(repeating: "ㅎ", count: 3))
// Print "ㅎㅎㅎ"

 

suffix(_:) 

  배열의 길이에서 괄호 안에 들어가는 숫자만큼 뒤에서 요소(elements)들을 가져옵니다.

let numbers = [1, 2, 3, 4, 5]
print(numbers.suffix(2))
// Prints "[4, 5]"
print(numbers.suffix(10))
// Prints "[1, 2, 3, 4, 5]"



 

728x90