https://github.com/JeaSungLEE/iOSInterviewquestionsSwift의 고차 함수(Higher-Order Functions)에 대해 설명해주세요.map과 flatMap의 차이점은 무엇인가요?filter, reduce 함수는 어떤 경우에 사용하나요?compactMap은 어떤 역할을 하나요?고차함수(Higher Order Functions)다른 함수를 인자로 받거나, 함수를 반환하는 함수를 고차 함수라고합니다.map배열의 각 요소에 클로저로 전달된 함수를 적용한 새로운 배열을 반환합니다.let functionA = { (num: Int) -> Int in return num + num}let numbers: [Int] = [1, 2, 3, 4, 5, 6]let result:..
https://github.com/JeaSungLEE/iOSInterviewquestions GitHub - JeaSungLEE/iOSInterviewquestions: 👨🏻💻👩🏻💻iOS 면접에 나올 질문들 총 정리👨🏻💻👩🏻💻iOS 면접에 나올 질문들 총 정리 . Contribute to JeaSungLEE/iOSInterviewquestions development by creating an account on GitHub.github.com Swift에서 클로저(Closure)란 무엇이며, 어떻게 사용하나요?클로저의 캡처(Capture) 기능은 무엇인가요?@escaping 클로저와 non-escaping 클로저의 차이점은 무엇인가요?트레일링 클로저(Trailing Clos..
https://github.com/JeaSungLEE/iOSInterviewquestions우선 lv1 - 24 이후 lv1 - 4, 13 번 순서를 통해서 점차 자세히!? 진행할 것 같습니다.Swift의 클로저와 함수의 차이점은 무엇인가요?클로저가 일급 객체(First-Class Citizen)인 이유는 무엇인가요?함수형 프로그래밍 패러다임에서 클로저가 어떻게 활용되나요?함수(Function)이름이 있는 코드 블럭func 키워드로 선언전역, 타입 내 정의해서 사용캡처 기능을 필요로 하지 않음 클로저(Closure)이름이 없는 코드 블럭중괄호로 표현변수로 전달, 다른 함수 내부 등 자유롭게 사용변수, 상수를 캡처해서 사용해야 함 일급 객체 (First-Class Citizen)변수에 할당 가능함수의 인자..
https://github.com/JeaSungLEE/iOSInterviewquestions컴퓨터 시스템에서 CPU, RAM, 저장 장치의 역할과 이들이 어떻게 상호 작용하는지 설명해주세요.💡 힌트: 앱 실행 과정을 단계별로 생각해보세요저장 장치에서 앱 바이너리 로드RAM에 코드와 초기 데이터 적재CPU가 명령어 실행필요시 추가 리소스 로드앱을 실행할 때 이 구성 요소들이 어떤 순서로, 어떻게 상호작용하여 앱 화면을 보여주게 되나요?RAM이 부족하면 iOS 시스템은 어떤 동작을 할까요? 이것이 앱 개발 시 왜 중요할까요?CPU 속도, RAM 용량, 저장 장치 속도 중 어떤 것이 앱의 '체감 속도'에 가장 큰 영향을 미칠 수 있을까요? 이유와 함께 설명해주세요.iOS의 A-시리즈 칩셋에서 CPU와 GPU..
1차 프로젝트부터 현재 3차 프로젝트를 진행하는 데 있어 매번 빠지지 않던 부분이 바로 클린아키텍처였다.처음 프로젝트를 시작하면서 알게 된 클린 아키텍처를 1차에선 그 의미를 2차에선 필요성을 3차에선 실제 구현으로 이해도를 점차 확장해 왔다.3차 프로젝트에서는 실제 구현도 하기로 했기 때문에, 좀 더 정확한 이해하기 위해 공부하기로 했다.클린아키텍처란?유사한 목적(관심사 분리- the separation of concerns)을 가지는 다양한 아키텍처를 통합하기 위해 고안한 아키텍처 패턴특징프레임워크에 독립적, 특정 기능을 갖춘 소프트웨어 라이브러리의 존재 여부에 의존하지 않음 → 프레임워크를 도구로 활용UI, DB, Web Server 또는 기타 외부 요소 없이도 비즈니스 규칙을 테스트할 수 있음UI..
🔗 문제 링크https://school.programmers.co.kr/learn/courses/30/lessons/340212💡 구현 아이디어레벨은 1~max(diffs) 의 숫자중 하나레벨을 1부터 전부 비교할 수는 없으니 이분탐색으로 범위를 줄여나감💻 코드import Foundationfunc solution(_ diffs:[Int], _ times:[Int], _ limit:Int64) -> Int { let diffs: [Int64] = diffs.map { Int64($0) } let times: [Int64] = times.map { Int64($0) } var low: Int64 = 1 var high: Int64 = -1 var mid: Int64 ..
🔗 문제 링크https://school.programmers.co.kr/learn/courses/30/lessons/140107💡 구현 아이디어d를 기준으로 원을 그려서 x에 대한 y를 구함x가 k의 배수인 경우에 k의 배수인 y 개수 구함💻 코드import Foundationfunc solution(_ k:Int, _ d:Int) -> Int64 { let d: Int64 = Int64(d) let k: Int64 = Int64(k) var i: Int64 = 0 var result: Int64 = 0 while i*i ❌ 틀린 이유 및 틀린 부분⏳ 시간 복잡도O(N) : X값 0~sqrt(d^2) 범위까지만 확인📌 풀이 또는 기억할 정보
🔗 문제 링크https://school.programmers.co.kr/learn/courses/30/lessons/62048💡 구현 아이디어기울기를 구함최소 공배수를 구함W * H 사각형을 W/GCD * H(GCD) 사각형으로 압축해서 버리는 사각형의 개수를 구함전체 W * H에 대해서 사각형 개수를 구하고 버리는 3번에서 구한 사각형의 개수 * 압축 비율로 전체 중에서 사용가능한 사각형의 개수를 구함💻 코드import Foundationfunc solution(_ w:Int, _ h:Int) -> Int64 { let width: Int64 = Int64(min(w, h)) let height: Int64 = Int64(max(w, h)) // let incline..
🔗 문제 링크https://school.programmers.co.kr/learn/courses/30/lessons/60057💡 구현 아이디어주어진 문자열을 1~문자열길이 만큼으로 각각 나눔나누어진 문자열을 기반으로 압축 진행최소 길이 반환💻 코드import Foundationfunc solution(_ s:String) -> Int { var result: Int = 1001 var str: [String] = Array(s).map { String($0) } for len in 1...str.count { var tempStr: String = "" var cStr: [String] = convertStr(str, len) ..
🔗 문제 링크https://school.programmers.co.kr/learn/courses/30/lessons/134239💡 구현 아이디어구간 구하기(1만들기)각 구간의 넓이 구하기요구하는 범위에 맞게 결과 구하기💻 코드import Foundationfunc solution(_ k:Int, _ ranges:[[Int]]) -> [Double] { var result: [Double] = [] // 최종 구간 넓이 var paths: [Int] = [] // 1로 만드는 순서 var sizes: [Double] = [0] // 각 구간의 넓이 var k = k // 1로 만들기 while k > 1 { paths.append(k) ..
