0. TIL
잘한 점: 퇴 끝 공 ㅋㅋ
개선점 : 왜 맨날 스위프트 강의 안듣니
배운 점: 삼중 루프! 범위 설정!
1. 데일리 루틴
cs 공부
질문 : iOS 앱의 메모리 사용량 최적화를 위한 방안과 고려 사항에 대해 설명해주세요.
iOS 앱의 메모리 최적화를 위해
- ARC 관리와 순환 참조 방지
- 이미지 최적화 및 지연 로딩(Lazy Loading) 사용
- 데이터 구조 최적화
- UITableView/UICollectionView의 셀 재사용
- 메모리 경고 대응으로 불필요한 리소스 해제
- 비동기 처리로 메모리 부담 줄이기
- Instruments 도구로 메모리 누수와 사용량 분석
이런 방법들을 통해 앱의 메모리 사용을 효율적으로 관리할 수 있음
1일 1커밋
📜 문제 설명
한국중학교에 다니는 학생들은 각자 정수 번호를 갖고 있습니다. 이 학교 학생 3명의 정수 번호를 더했을 때 0이 되면 3명의 학생은 삼총사라고 합니다. 예를 들어, 5명의 학생이 있고, 각각의 정수 번호가 순서대로 -2, 3, 0, 2, -5일 때, 첫 번째, 세 번째, 네 번째 학생의 정수 번호를 더하면 0이므로 세 학생은 삼총사입니다. 또한, 두 번째, 네 번째, 다섯 번째 학생의 정수 번호를 더해도 0이므로 세 학생도 삼총사입니다. 따라서 이 경우 한국중학교에서는 두 가지 방법으로 삼총사를 만들 수 있습니다.
한국중학교 학생들의 번호를 나타내는 정수 배열 number가 매개변수로 주어질 때, 학생들 중 삼총사를 만들 수 있는 방법의 수를 return 하도록 solution 함수를 완성하세요.
⌨️ 입출력 예
✏️ 나의 코드
// 틀린 오답 코드 ㅎ
import Foundation
func solution(_ number:[Int]) -> Int {
var result = 0
var num = 0
for i in 0..<number.count{
for j in 1..<number.count{ // 범위 설정 오류로 i, j 중복되는 오류 발생
if i != j {
num = number[i] + number[j]
var otherNum = number.filter { $0 != number[i] && $0 != number[j] }
//같은 숫자가 여러개 있는 경우 모두 제거되므로 정상적인 비교 불가
for x in otherNum{
if num + x == 0{
result += 1
}else{
break
// 나머지 값들을 체크하지 못하고 다음 턴으로 넘어가게 됨
}
}
num = 0
}
}
}
return result
}
📚 개선 코드
import Foundation
func solution(_ number: [Int]) -> Int {
var result = 0
let n = number.count
//삼중 포인터 사용
for i in 0..<(n - 2) {
for j in (i + 1)..<(n - 1) {
for k in (j + 1)..<n {
if number[i] + number[j] + number[k] == 0 {
result += 1
}
}
}
}
return result
}
i, j, k 범위 설정하는 것은 아래 그림과 같음!
이해가 잘 안돼서 직접 그림,,, 형광펜으로 동그라미 친 부분은 i, j, k 선택에 따른 예시임
swift 강의
강의명 : 오늘은 아직 못들었으요
난 그럼 청첩장 모임 가야해서 호다닥 ㅠㅠ~~~
'TIL' 카테고리의 다른 글
241102 TIL | 오랜만에! / iOS 타이머 앱 만들기, Swift Timer (4) | 2024.11.02 |
---|---|
241007 TIL | 데이터베이스 종류, 직렬 큐, 동시 큐, GCD (0) | 2024.10.07 |
240920 TIL | 페이징, swift 이상한 문자 만들기 (0) | 2024.09.21 |
240918 TIL | 가상 메모리, 네트워크 (5) | 2024.09.19 |
240916 TIL | 해시 함수, 세균 증식 (0) | 2024.09.16 |