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

팔랑이·2024년 4월 8일

iOS/Swift

목록 보기
12/90
post-thumbnail

💻 프로그래머스: 핸드폰 번호 가리기 - 문제링크


문자열 인덱싱으로 해결해보려고 끙끙댔으나, Swift의 문자열 인덱싱은 python과 느낌이 많이 다른 것 같다.

이번 기회에 Swift의 문자열 인덱싱 방법을 다뤄보기로 하고, - [여기]

이 문제를 푸는데 효과적인 prefix/suffix, String(repeating:,count:)를 우선 다뤄본다.

👇🏻 해당 문제의 해결 코드

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

1. prefix(), suffix()

prefix(), suffix() 는 문자열의 앞이나 뒤부터 원하는 길이만큼 추출하고 싶을 때 사용한다.

let text = "Hello, World!"
let pref = text.prefix(5)
let suf = text.suffix(6)
print(pref) // "Hello"
print(suf) // "World!"
  • 이 메서드는 subString 타입을 반환한다. 따라서 원하는 반환값에 따라 String()을 씌워줘야 하기도 하고, 장기적인 보관이 필요한 경우는 String으로 변환하여 보관해야 한다.

  • 문자열의 길이보다 큰 값을 넣을 경우, 모든 문자열을 반환한다.

2. String(repeating:count:)

주어진 문자열을 반복하여 새 문자열을 생성하는 이니셜라이저라고 한다.

let repeatString = String(repeating: "ab", count: 3)
print(repeatString) // "ababab"

사용 방법은 위처럼 두 개의 인자(반복하고 싶은 String, 반복 횟수)를 넣으면 된다.

❗️ 참고로, Array 에도 사용 가능하다.

let numbers = Array(repeating: 1, count: 5)
print(numbers) // [1, 1, 1, 1, 1]

잘 기록&기억해두고 상황에 맞게 잘 써먹어보도록 하자.

profile
정체되지 않는 성장

0개의 댓글