일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
1 | 2 | 3 | 4 | 5 | ||
6 | 7 | 8 | 9 | 10 | 11 | 12 |
13 | 14 | 15 | 16 | 17 | 18 | 19 |
20 | 21 | 22 | 23 | 24 | 25 | 26 |
27 | 28 | 29 | 30 |
- windosws wbcs
- web
- 정렬 알고리즘
- LoB
- ftz
- 스택
- pwnable.kr
- 백준
- 자료구조
- HTML
- War Game
- c언어
- PHP
- OSI
- Java
- 암호수학
- 파일 시스템
- 파이썬
- level13
- 큐
- ftz level13
- Stack
- SWiFT
- System
- 두근두근 자료구조
- 시간복잡도
- C
- 미로 탐색 알고리즘
- windosw 문자열
- 재귀
- Today
- Total
목록모두 보기 (276)
나의 기록, 현진록

MVC와 MVVMMVC는 Massive Controller라는 문제를 가진다. 실제로 MVC 구조로 코드를 작성하다 보면 결국 Model과 View가 아닌 영역은 ViewController에 작성하기 때문이다. 그 대안으로 iOS에서는 MVVM 디자인 패턴을 사용한다. ViewModel을 추가하여 ViewController의 역할과 책임을 분리시킨다. 프로젝트의 규모나 기능의 복잡성이 크지 않다면 ViewModel을 추가하는 것만으로도 Massive Controller라는 문제에 대해서 해소할 수 있을 것이다. MVVM의 문제iOS에서 처음 MVC의 문제점을 느끼고 MVVM을 경험 했을 때 당시 느껴왔던 문제들이 해소되었다. ViewController의 크기는 줄었으며 그만큼 ViewModel로 책임..
https://www.acmicpc.net/problem/2437 1. 문제이해N 개의 저울추가 주어질 때, 측정할 수 없는 무게 중 최솟값 구하기2. 접근방법1, 1, 2로 측정할 수 있는 무게1 (1)2 (1+1, 2)3 (1+2)4 (1+1+2)1,2,3,41, 1, 2에서 3이 추가될 경우1 + 3 = 42 + 3 = 53 + 3 = 64 + 3 = 71,2,3,4,5,6,71, 1, 2에서 5가 추가될 경우1 + 5 = 62 + 5 = 73 + 5 = 84 + 9 = 91,2,3,4,6,7,8,9 5는 무게를 측정할 수 없음1 ~ K까지 무게를 측정할 수 있을 때새로운 저울추가 K 무게보다 작거나 같으면 1부터 새로운 저울추까지 무게를 측정할 수 있다.새로운 저울추가 K 보다 크면 K+1은 측정..
https://school.programmers.co.kr/learn/courses/30/lessons/49189 프로그래머스SW개발자를 위한 평가, 교육, 채용까지 Total Solution을 제공하는 개발자 성장을 위한 베이스캠프programmers.co.kr 1. 문제 이해- 1번 노드에서 가장 멀리 떨어져 있는(최대 dept)의 노드 개수 구하기 2. 접근 방법bfs 알고리즘 사용하여 dept마다 이동 가능한 노드 갯수 업데이트bfs 알고리즘 수행 후 업데이트 된 노드 갯수를 출력 3. 코드import Foundationfunc solution(_ n:Int, _ edge:[[Int]]) -> Int { var map = Array(repeating: [Int](), count: n) ..
https://www.acmicpc.net/problem/15686 1. 문제이해최대 M개의 치킨집만 도시에 존재해야 한다고 했을 때, 도시의 치킨 거리(모든 집의 치킨 거리의 합)의 최소 값을 구하기2. 접근방법집 좌표, 치킨집 좌표 조합 만들기치킨 집 좌표를 백트래킹으로 완전 탐색가장 가까운 치킨집 찾기도시의 치킨거리 최솟값 구하기3. 코드import Foundationfunc solution(){ let input = readLine()!.split(separator: " ").map{Int(String($0))!} let N = input[0] let M = input[1] var map = [[Int]]() for _ in 0.. Int{ var sum =..
https://school.programmers.co.kr/learn/courses/30/lessons/42628 프로그래머스SW개발자를 위한 평가, 교육, 채용까지 Total Solution을 제공하는 개발자 성장을 위한 베이스캠프programmers.co.kr 1. 문제 이해일반적인 우선순위큐는 한 쪽 방향으로 Input, 다른 한 쪽 방향으로 Output이 이루어진다고 한다면, 문제에서 요구하는 이중우선순위큐는 Output이 양쪽 방향으로 이루어지는 형태이다. 큐에 데이터를 push하고 최댓값이나 최솟값을 pop할 수 있는 구조를 만들어야 한다. 2. 접근 방법[정렬]Output을 최솟값과 최댓값을 pop할 수 있는 형태로 큐를 만들어야 한다. 한 쪽은 최솟값만 다른 한 쪽은 최댓값만 pop할 수..
https://school.programmers.co.kr/learn/courses/30/lessons/43165 프로그래머스SW개발자를 위한 평가, 교육, 채용까지 Total Solution을 제공하는 개발자 성장을 위한 베이스캠프programmers.co.kr 주어진 배열에 있는 숫자들로 더하거나 빼서 targetNumber를 만들기 - 주어진 배열에 있는 숫자들을 더하거나 뺀 값으로 재귀호출을 반복(DFS) - 재귀호출이 끝났을 경우 targetNumber와 같을 경우 count + 1- 모든 DFS 종료 시 count 출력 import Foundationfunc solution(_ numbers:[Int], _ target:Int) -> Int { func dfs(dept: Int, resu..
https://school.programmers.co.kr/learn/courses/30/lessons/43164 프로그래머스SW개발자를 위한 평가, 교육, 채용까지 Total Solution을 제공하는 개발자 성장을 위한 베이스캠프programmers.co.kr 1. 문제 이해"ICN" 공항에서 출발한다.주어진 항공권은 모두 사용해야 한다.가능한 경로가 2개 이상일 경우 알파벳 순서가 앞서는 경로를 선택해야 한다.모든 도시를 방문할 수 없는 경우는 주어지지 않는다. 위 조건을 고려하여 방문하는 공항 경로를 출력하자 2. 접근 방법"가능한 경로가 2개 이상일 경우 알파벳 순서가 앞서는 경로를 선택해야 한다." -> [a, b]에서 b를 기준으로 오름차순 정렬visited와 백트래킹을 사용한 dfs ..

Objective반복된 동작을 위해 주로 for in 또는 forEach를 주로 사용해 왔다.가끔 알고리즘 문제를 풀곤 할 때 forEach 문을 사용했을 때 시간 초과가 발생했던 적이 있어서 둘 중 for in이 더 빠르다고 느껴왔다.경험으로 인해 그렇다고 느껴왔던 것이지 의문만 가지고 실제 두 차이를 알아보려고 시도하진 않았던 것 같다. for-in과 forEach 중 어떤 것이 속도와 메모리 측면에서 성능 분석 후 어떠한 상황에서 사용하는 게 적합한지 알아보자 Key ResultKR1 - 어느 것이 속도가 더 빠른지 비교한다.KR2 - 어느 것이 메모리 사용량이 적은지 비교한다.KR3 - 각각 어떠한 상황에서 사용하는 것이 적합한지 분석한다. KR1 - 속도 비교import Foundation..

Main Event Loop메인 스레드의 Run Loop이다. Main Run Loop로 불리기도 한다.앱이 시작될 때 생성된 UIApplication에 의해 자동으로 생성되고 실행된다. run() 메소드 동작 과정 중에 main loop를 실행한다.Input Source와 Timer Soruce 두 종류의 이벤트를 처리한다.Input Sorce를 통해 사용자의 저수준 이벤트를 수신 받는다. Main Event Loop의 동작 과정 1. Input Source로부터 입력 받은 저수준의 이벤트를 도착한 순서대로(FIFO) 이벤트 큐(Event Queue)에 넣는다. 2. Application object는 이벤트 큐에 있는 최상위 이벤트 객체를 가져와 해석하고 그에 상응되는 UIEvent(iOS)로 변..
WKWebView앱과 상호 작용이 가능한 웹 컨텐츠를 보여줄 수 있도록하는 객체HTML, CSS, JavaScript와 같은 컨텐츠를 앱의 네이티브 뷰와 함께 보여줄 수 있도록 제공한다.웹 기술이 네이티브 뷰보다 앱의 레이아웃 및 스타일 요구사항을 더 쉽게 충족할 수 있을 때 사용한다.앱의 콘텐츠가 자주 바뀔 때 사용할 수 있다.단순 일회성 또는 주기적으로 바뀌는 뷰, 이벤트 팝업 등이 예시가 될 수 있을 것 같다.URL을 정적으로 작성 되어 있는 것이 아닌 API 호출로 URL을 입력할 수 있다면 웹 뷰가 변경 될 때마다 앱을 배포하지 않아도 될 것 같다. (웹뷰 안 써봐서 모름...) WKWebView 이전에는 iOS 2.0부터 사용 가능한 UIWebView를 사용하였지만 iOS 8.0부터는 WKWe..