본문 바로가기

분류 전체보기303

[알고리즘] 정렬(Sorting) 정렬(Sorting) 데이터를 특정한 기준에 따라 순서대로 나열하는 것을 말한다. 선택 정렬(Selection Sort) 정렬되지 않은 데이터 중에서 가장 작은 것을 선택해 맨 앞으로 보낸다. 다른 정렬 알고리즘들에 비해 비효율적이다. → 시간 복잡도: O(N^2) 삽입 정렬(Insertion Sort) 데이터를 하니씩 확인하며, 각 데이터를 적절한 위치에 삽입한다. 데이터가 거의 정렬되어 있을 때 효율적이다. → 시간 복잡도: O(N^2) 퀵 정렬(Quick Sort) 기준 데이터를 설정하고, 그 기준보다 큰 데이터와 작은 데이터의 위치를 바꾼다. 피벗(Pivot): 기준 데이터 → 평균 시간 복잡도: O(NlogN) 계수 정렬(Count Sort) 가장 작은 데이터부터 가장 큰 데이터까지 모두 담길 .. 2022. 3. 24.
[알고리즘] DFS/ BFS 탐색(Search): 많은 양의 데이터 중에서 원하는 데이터를 찾는 과정 그래프, 트리 등의 자료구조 안에서 탐색하는 문제를 주로 다룬다. 대표적인 탐색 알고리즘으로 DFS와 BFS가 있다. 두 알고리즘을 이해하기 위해 필요한 자료구조 더보기 자료구조(Data Struture): 데이터를 표현하고 관리하고 처리하기 위한 구조 스택과 큐는 자료구조의 기초 개념으로 다음 두 핵심 함수로 구성된다. 삽입(Push): 데이터를 삽입 삭제(Pop): 데이터를 삭제 오버플로우(Overflow): 특정 자료구조가 수용할 수 있는 데이터의 크기를 넘은 상태에서 삽입 연산을 수행할 때 발생 언더플로우(Underflow): 특정 자료구조에 데이터가 들어있지 않은 상태에서 삭제 연산 수행 시 발생 스택(Stack): 데이터.. 2022. 3. 23.
[UIKit] 앱의 라이프 사이클 앱은 현재 상태에 따라서 할 수 있는 작업과 할 수 없는 작업이 결정됩니다. 개발자는 앱의 상태가 변화할 때마다 앱의 동작을 적절하게 조절해주어야 해야 합니다. UIKit은 delegate 객체의 메서드를 적절히 호출하여 앱의 상태가 변화했음을 알려줍니다. Scene 기반 라이프 사이클 이벤트에 대응 Scene을 지원하는 앱에서 UIKit은 라이프 사이클 이벤트가 발생할 때마다 각각의 이벤트를 전달합니다. Scene: 기기에서 실행되는 앱 UI의 인스턴스 하나 사용자는 각 앱에서 여러 개의 scene을 생성할 수 있으며, 각각의 scene을 독립적으로 숨기거나 보이게 할 수 있습니다. 각 scene은 고유의 라이프 사이클을 가지고 있기 때문에 서로 다른 실행 상태에 있을 수 있습니다. Scene은 기본 .. 2022. 3. 22.
[알고리즘] 구현(Implementation) 구현(Implementation)이란 머릿속에 있는 알고리즘을 소스코드로 바꾸는 과정이다. 구현 문제 유형은 모든 범위의 코딩 테스트 문제 유형을 포함하는 개념이다. 구현 유형의 문제는 풀이를 떠올리는 것은 쉽지만 소스코드로 옮기기 어려운 문제이다. 알고리즘은 간단한데 코드가 지나치게 길어지는 문제 특정 소수점 자리까지 출력해야 하는 문제 문자열이 주어졌을 때 파싱 해야 하는 문제 구현 시 고려해야 할 메모리 제약 사항 변수의 표현 범위 리스트(배열) 크기 완전 탐색: 모든 경우의 수를 주저 없이 다 계산하는 해결 방법 시뮬레이션: 문제에서 제시한 알고리즘을 한 단계씩 차례대로 직접 수행 구현 알고리즘 문제 상하좌우 여행가 A는 N x N 크기의 정사각형 공간 위에 서 있다. 이 공간은 1 x 1 크기의.. 2022. 3. 22.
UIKit UIKit 프레임워크는 iOS 또는 tvOS 앱에 필요한 인프라를 제공합니다. 인터페이스를 구현하기 위한 window와 view architecture을 제공합니다. Multi-Touch 및 기타 유형의 입력을 앱에 제공하기 위한 이벤트 처리 인프라를 제공합니다. 사용자, 시스템 및 앱 간의 상호 작용을 관리하는데 필요한 기본 실행 루프를 제공합니다. 그 밖에, UIKit 프레임워크는 다음과 같은 기능들을 지원합니다. 애니메이션 문서 그리기 printing 사용중인 기기 정보 텍스트 관리 및 표시 검색 접근성 앱 확장 리소스 관리 별 다른 명시사항이 없다면, UIKit에 포함된 클래스들을 앱의 main thread 혹은 main dispatch queue에서만 사용해야 한다. 이 제한은 UIRespond.. 2022. 3. 21.
[알고리즘] 그리디(Greedy) 그리디(Greedy) 탐욕법 알고리즘 현재 상황에서 가장 좋은 것을 고르는 알고리즘 그리디 알고리즘 문제를 해결하는 방법 선택 절차(Selection Procedure): 현재 상태에서 최적의 해답 선택 적절성 검사(Feasibility Check): 선택된 해가 문제의 조건을 만족하는지 검사 해답 검사(Solution Check): 원래의 문제가 해결되었는지 검사, 해결되지 않았다면 선택 절차로 돌아와 위의 과정 반복 그리디 알고리즘 조건 탐욕스러운 선택 조건(Greedy Choice Property): 앞의 선택이 이후의 선택에 영향을 주지 않는다 최적 부분 구조(Optimal Substructure): 문제에 대한 최종 해결 방법은 부분 문제에 대한 최적 문제 해결 방법이다. 그리디 알고리즘 문제 .. 2022. 3. 8.
[Swift] 열거형 (Enumerations) 열거형 관련된 값으로 case값으로 string, character, integer, floting 값들을 사용 계산된 프로퍼티(computed properties)를 제공하거나 초기화를 지정하거나, 초기 선언을 확장해 사용 가능 열거형 문법 원시 값(Raw Values)이 없는 열거형 enum CompassPoint { case north case south case east case west } //콤마(,)를 구분해 한줄로 정의 enum CompassPoint { case north, south, east, west } var directionToHead = CompassPoint.west var directionToHead: CompassPoint = .west /*CompassPoint로 한번 .. 2022. 2. 8.
[Swift] 함수(Functions) 정의와 호출 /* func 함수명 (파라미터: 데이터 타입) -> 반환타입 { return } */ func person (name: String, age: Int) -> String{ var s = "Myname is " + name + " and my age is \(age)" return s } var s = person(name: "hyebin", age: 24) print(s) //Myname is hyebin and my age is 24 함수 파라미터와 반환 값 파라미터가 없는 함수 func helloWorld() -> String{ return "hello, world" } print(helloWorld()) //hello, world 반환 값이 없는 함수 func helloWorld(){.. 2021. 12. 2.
[Swift] 제어문(Control Flow) 반복문 for-in 문 배열, 숫자, 문자열을 순서대로 순회하기 위해 사용 reversed(): 역순으로 순회 stride(from: x, to: y, by: z): x부터 y-1까지 z 만큼씩 순회 stride(from: x, through: y, by: z): x부터 y까지 z 만큼씩 순회 // for 루프상수 in 순회 대상{ 구문 } for i in 1...3{ print(i) } //루프 상수를 _ 키워드 사용 가능 for _ in 1...3{ print(1) } while문 조건이 거짓일 때까지 구문을 반복 //while 조건 { 구문 } var a = 10 while a > 0{ a -= 1 } reapet-while문 구문을 먼저 실행한 후 while 조건을 확인하여 거짓일 때까지 반복 /.. 2021. 11. 26.
[Swift] 데이터 타입(2) 컬렉션 타입 배열(Array) 같은 데이터의 값들을 순서대로 저장하는 리스트 //var(or let) 배열명: Array = Array() var arrayName: Array = Array() //축약형 var arrayName = [Int]() var arrayName: [Int] = [] count 배열의 원소 개수 반환 isEmpty 배열이 비어있는지 확인 append, += 배열에 원소 추가 insert(Value, at: postion) 배열의 해당 위치에 값 추가 remove(at: postion) 배열의 해당 위치의 값 제거 removeFirst() removeLast() 배열의 첫 번째 요소 또는 마지막 요소를 제거 후 해당 요소 값을 반환 딕셔너리(Dictionary) 순서 없이 키(K.. 2021. 11. 25.
반응형