0.
강의 듣고 진도 쫓아가느라 바쁜 요즘,,, 데일리 포스팅을 자꾸 놓치게 되네요!
선택과 집중!
1. 데일리 루틴
✅ cs 질문 공부하기
질문 : iOS 디바이스의 메모리 제약과 앱 메모리 제한에 대해 설명해주세요.
답변 :
iOS 디바이스의 메모리 제약
물리적 메모리 한계: 디바이스별 RAM 용량 제한.
멀티태스킹: 여러 앱이 동시에 메모리를 사용.
시스템 리소스: 운영 체제와 시스템 서비스도 메모리를 차지.
앱 메모리 제한
메모리 경고: 과도한 메모리 사용 시 경고 발생.
메모리 제한 규칙: 앱마다 메모리 사용 한도 설정.
앱 종료: 메모리 사용이 한도를 넘으면 앱 강제 종료.
고려 사항 및 최적화
메모리 프로파일링: Xcode 도구로 메모리 사용 분석 및 최적화.
효율적인 메모리 관리: 필요 없는 객체 해제, 캐싱 활용.
메모리 누수 방지: 강한 참조 순환 방지, 약한 참조 사용.
✅ 1일 1커밋
📜 문제 설명
1937년 Collatz란 사람에 의해 제기된 이 추측은, 주어진 수가 1이 될 때까지 다음 작업을 반복하면, 모든 수를 1로 만들 수 있다는 추측입니다. 작업은 다음과 같습니다.
1-1. 입력된 수가 짝수라면 2로 나눕니다.
1-2. 입력된 수가 홀수라면 3을 곱하고 1을 더합니다.
2. 결과로 나온 수에 같은 작업을 1이 될 때까지 반복합니다.
예를 들어, 주어진 수가 6이라면 6 → 3 → 10 → 5 → 16 → 8 → 4 → 2 → 1 이 되어 총 8번 만에 1이 됩니다. 위 작업을 몇 번이나 반복해야 하는지 반환하는 함수, solution을 완성해 주세요. 단, 주어진 수가 1인 경우에는 0을, 작업을 500번 반복할 때까지 1이 되지 않는다면 –1을 반환해 주세요.
제한 사항
- 입력된 수, num은 1 이상 8,000,000 미만인 정수입니다.
⌨️ 입출력 예
✏️ 나의 코드
func solution(_ num:Int) -> Int {
var n = num
var count = 0
for count =< 500{ // 이 자리에 count 넣으면 let이 돼서 아래에 count += 1이 불가, 굳이 선언할 필요도 없음
if n = 1{
return count
}else{
if count = 8{ // =는 대입, 비교 연산자는 ==
return -1
}else if n % 2 == 0{
n = n /2 // 연산자 앞뒤 공백 필요
count += 1
}else{
n = n * 3 + 1
count += 1
}
}
}
}
📚 개선 코드
func solution(_ num:Int) -> Int {
var n = num
var count = 0
for _ in 0...500{
if n == 1{
return count
}else{
if count == 500{
return -1
}else if n % 2 == 0{
n = n / 2
count += 1
}else{
n = n * 3 + 1
count += 1
}
}
}
return 0
}
swift 문법 강의 듣기
속성과 메서드 복습 했어요
'TIL' 카테고리의 다른 글
240821 TIL | 이진 탐색, 전화번호 가리기, repeating, suffix (0) | 2024.08.23 |
---|---|
240820 TIL | 정렬 알고리즘, swift의 고차함수 (0) | 2024.08.20 |
240721 데일리 포스팅 | iOS 앱의 메모리 구조, 프로그래머스 양꼬치 swift, 앱 만들기, 클래스와 구조체 (0) | 2024.07.21 |
240717 데일리포스팅 | 새 루틴 짜기! (0) | 2024.07.17 |
240617 데일리포스팅 | 프로세스, 스레드, 몫 구하기 (0) | 2024.06.17 |