0. TIL
잘한 점: 아침 스터디를 했다
개선점 : TIL를 당일에 올리지 못했다 ㅎ
배운 점: repeating과 suffix 사용에 대해 알게 되었다.
1. 데일리 루틴
cs 지식 공부
질문 : 이진 탐색의 원리와 시간 복잡도에 대해 설명해주세요.
답변 :
이진 탐색(Binary Search)
원리: 정렬된 배열에서 특정 값을 찾는 효율적인 알고리즘입니다. 탐색 대상 배열의 중간 요소와 찾고자 하는 값을 비교하여, 중간값보다 작은 경우 왼쪽 절반, 큰 경우 오른쪽 절반에서 탐색을 이어갑니다. 이 과정을 반복하여 탐색 범위를 절반씩 줄여 나갑니다.
시간 복잡도: O(log N). 배열을 절반으로 나누어 탐색하기 때문에 매우 빠르게 값을 찾을 수 있습니다.
제약 조건: 이진 탐색이 제대로 작동하려면 배열이 반드시 정렬되어 있어야 합니다.
1일 1커밋
📜 문제 설명
프로그래머스 모바일은 개인정보 보호를 위해 고지서를 보낼 때 고객들의 전화번호의 일부를 가립니다.
전화번호가 문자열 phone_number로 주어졌을 때, 전화번호의 뒷 4자리를 제외한 나머지 숫자를 전부 *으로 가린 문자열을 리턴하는 함수, solution을 완성해주세요.
⌨️ 입출력 예
✏️ 나의 코드
func solution(_ phone_number:String) -> String {
var pNumArr = Array(phone_number)
for i in 0..<pNumArr.count-4{
pNumArr[i] = "*"
}
return String(pNumArr)
}
📚 개선 코드
func solution(_ phone_number: String) -> String {
// phone_number의 길이에서 마지막 4자리를 제외한 나머지를 "*"로 대체
let maskedCount = phone_number.count - 4
let maskedPart = String(repeating: "*", count: maskedCount)
let lastFourDigits = phone_number.suffix(4)
// 두 부분을 합쳐서 반환
return maskedPart + lastFourDigits
}
swift 강의
클로저 파트를 들었다
'STUDY > TIL' 카테고리의 다른 글
240903 TIL | 트리 자료구조, 최대공약수와 최소공배수 (0) | 2024.09.03 |
---|---|
240828 TIL | 문자열 다루기 기본, 배열, 스택 등등 (1) | 2024.08.28 |
240820 TIL | 정렬 알고리즘, swift의 고차함수 (0) | 2024.08.20 |
240808 데일리 포스팅 | 메모리 제약과 메모리 제한, 콜라츠 추측 (4) | 2024.08.08 |
240721 데일리 포스팅 | iOS 앱의 메모리 구조, 프로그래머스 양꼬치 swift, 앱 만들기, 클래스와 구조체 (0) | 2024.07.21 |