0. TIL
잘한 점: 퇴근하고 남아서 열심히 공부를 했다 😆
개선점 : 남는 시간을 좀 더 활용하기 ! 오늘은 컨디션이 안좋아서 시간 활용을 잘하지 못했다.
배운 점: 고차함수를 활용해서 문제 푸는 법을 익혔다.
배운 문법이지만 실제로 적용하는 것을 처음 시도해봤다!
1. 데일리 루틴 ✅ ❌
cs 질문 공부하기
질문 : 자주 사용되는 정렬 알고리즘(예: 퀵 정렬, 병합 정렬)의 동작 원리와 시간 복잡도를 설명해주세요.
답변 :
퀵 정렬 (Quick Sort):
동작 원리: 피벗을 기준으로 작은 값과 큰 값을 나누고, 이를 재귀적으로 정렬.
시간 복잡도: 평균 O(N log N), 최악 O(N^2).
병합 정렬 (Merge Sort):
동작 원리: 배열을 반으로 나누어 정렬한 후, 다시 병합.
시간 복잡도: 모든 경우 O(N log N).
퀵 정렬은 평균적으로 빠르지만 최악의 경우 성능이 저하될 수 있고,
병합 정렬은 안정적인 성능을 보장하지만 추가 메모리 공간이 필요함.
1일 1커밋
📜 문제 설명
정수를 저장한 배열, arr 에서 가장 작은 수를 제거한 배열을 리턴하는 함수, solution을 완성해주세요.
단, 리턴하려는 배열이 빈 배열인 경우엔 배열에 -1을 채워 리턴하세요.
예를들어 arr이 [4,3,2,1]인 경우는 [4,3,2]를 리턴 하고, [10]면 [-1]을 리턴 합니다.
⌨️ 입출력 예
✏️ 나의 코드
func solution(_ arr:[Int]) -> [Int] {
var resultArr = arr
if resultArr.count == 1 {
return [-1]
}
var min = resultArr[0]
for i in 0..<resultArr.count{
if resultArr[i] < min{
min = resultArr[i]
}
}
resultArr.remove(at: (resultArr.firstIndex(of: min)!))
return resultArr
}
오,, 대환장 파티(머쓱)
이제는 고차함수를 배웠기 때문에 if, for 문 남발보단 좀 더 효율적이고 가독성 좋은 코드를...!
짜고 싶었지만 아직 감이 잘 안잡혀 실패
📚 개선 코드
func solution(_ arr:[Int]) -> [Int] {
if arr.count == 1 {
return [-1]
}
var min = arr.min()
return arr.filter { $0 != min }
}
min()과 filter 사용해서 아주 간단 명료한 코드 작성 성공! ^_^
프로그래머스에서 다른 사용자들 풀이에서 $0 나올 때 마다
나도 얼른 쓰고 싶었는데 드디더 배워서 썼다 ㅎㅎ
swift 문법 강의 듣기
강의 : part 19 메모리 관리
'TIL' 카테고리의 다른 글
240828 TIL | 문자열 다루기 기본, 배열, 스택 등등 (2) | 2024.08.28 |
---|---|
240821 TIL | 이진 탐색, 전화번호 가리기, repeating, suffix (0) | 2024.08.23 |
240808 데일리 포스팅 | 메모리 제약과 메모리 제한, 콜라츠 추측 (5) | 2024.08.08 |
240721 데일리 포스팅 | iOS 앱의 메모리 구조, 프로그래머스 양꼬치 swift, 앱 만들기, 클래스와 구조체 (0) | 2024.07.21 |
240717 데일리포스팅 | 새 루틴 짜기! (0) | 2024.07.17 |