일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
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 |
- 2022 부스트캠프
- NSSortDescriptor
- persistentStoreCoordinator
- 트레일링 클로저
- LightWeight Migration
- Swift LinkedList
- CoreData Concurrency
- iOS Static Library
- expensive operation
- NSManagedObject SubClass
- 다익스트라 이해
- Persistent store Coordinator
- CoreData
- Swift 고차함수
- Swift
- Raw value and Associated value
- CoreData Filter
- Clean swift
- Swift closure
- CoreData Stack
- 일급 객체
- 1009번
- codability
- Java
- 스위프트 클로저
- leetcode #01
- Associated Value
- iOS Static Library 사용하는방법
- dateFormatter
- NSPredicates
- Today
- Total
목록전체 글 (58)
하루를살자

What is LinkedList? LinkedList 는 Element 간의 연결(Link) 를 통해서 리스트를 구현한 자료구조 이다. Why LinkedList? 연결리스트의 효율성은 배열과 비교가 가장 많이 되는데 이유는 둘다 리스트 형태 를 구현할수 있다는것이다. 두가지의 자료구조의 특징을 이해하고 상황에 따라 적절히 사용하기 위해서 각각의 시간 복잡도를 데이터 탐색, 추가, 삭제 3가지로 나누어서 살펴봤다. 데이터 탐색 연결리스트: 특정 데이터를 찾기 위해서 연결되어 있는 요소들을 처음부터 순차적으로 탐색해야하기 때문에 O(n) 의 시간 복잡도를 갖는다. 배열: 배열의 요소는 특정 인덱스를 가지고 있기 이를 통해서 빠르게 특정 데이터를 찾을수 있다. O(1) 의 시간복잡도를 갖는다. 데이터 ..

문제 링크 문제 요약 주어진 모든 edge 들 의 최단거리를 구하고 1 에서부터 K 범위 만큼 떨어져있는 node 의 갯수를 구하는 문제 Given: N Road K Result 5 [[1,2,1],[2,3,3],[5,2,2],[1,4,2],[5,3,1],[5,4,2]] 3 4 6 [[1,2,1],[1,3,2],[2,3,2],[3,4,3],[3,5,2],[3,5,3],[5,6,1]] 4 4 시도 1 접근 방법 주어진 그래프에서 각 edge 들의 최단 거리를 구하기 위해서 initial 노드 부터 N 번째 노드까지의 최단 edge 의 값을 차례대로 계산했다. (주어진 첫번째 Test 에 맞춰서 문제를 풀기 시작했다) 각 Connected Edges 들은 [Source 노드, 목적지 노드, Source 노드..

문제 https://app.codility.com/programmers/lessons/1-iterations/binary_gap/ BinaryGap coding task - Learn to Code - Codility Find longest sequence of zeros in binary representation of an integer. app.codility.com 문제 이해 인자 값으로 들어온 N 값을 이진수로 표현했을때, 1과 1 사이 최대 갭의 값을 반환하는 함수를 만들어라. ex) N = 1041, binary = 100000100001, 1과1 사이의 갭 값들: 5,4 -> 5 반환 문제 접근 과정 N 값을 binary 로 계산 binary gap 을 찾기 위해 1 이 들어 있는 인덱스 ..

문제 자연수가 들어있는 배열 arr가 매개변수로 주어집니다. 배열 arr안의 숫자들 중에서 앞에 있는 숫자들부터 뒤에 중복되어 나타나는 숫자들 중복 횟수를 계산해서 배열로 return 하도록 solution 함수를 완성해주세요. 만약 중복되는 숫자가 없다면 배열에 -1을 채워서 return 하세요. ▶입출력 예 #1 arr = [1, 2, 3, 3, 3, 3, 4, 4]에서 3은 4번, 4는 2번씩 나타나므로 [4, 2]를 반환합니다. ▶입출력 예 #2 arr = [3, 2, 4, 4, 2, 5, 2, 5, 5]이면 2가 3회, 4가 2회, 5가 3회 나타나므로 [3, 2, 3]를 반환합니다. ▶입출력 예 #3 [3, 5, 7, 9, 1]에서 중복해서 나타나는 숫자는 없으므로 [-1]을 반환합니다. ##..
몇주전 코드스쿼드 강의실에 수료생들이 찾아와서 맴버들과 이야기를 나눌수 있는 기회가 있었다. 그중 가장 기억에 남는 질문은 “자신이 남들과 비교했을때 너무 뒤떨어지는 기분이 들어서 조바심이나고 학습을 어떻게 해야하는지 갈피가 안잡힐때가 있는데, 선배님들은 어떻게 학습했는지 궁금합니다” 였다. 이러한 질문은 JK 에게도 많이 했던질문이고, 항상 돌아오던 답변은 “다 각자의 학습속도가 있고 가지고 있는 능력이 다르기 때문에 당연한 일이다. 너무 연연해 하지말고, 자신의 길을 가면됩니다" 라는 말씀을 하셨다. 하지만 가르치는 입장과 배우는 입장 차이 때문일까? 이런 답변을 들어도 내 마음이 안정되는 기분을 잘 느끼지 못했었다. 선배님들은 자신이 코드스쿼드 미션진행을하면서 남이 프로젝트 진행하는 속도와 자신의 ..

문제링크 문제 요약 Input 으로 받아오는 배열 중 2개의 요소를 더한값이 Target 의 값과 같을때, 그 요소의 인덱스를 리턴해주는 함수를 작성해라. (반환값의 인덱스 순서는 상관없음) 문제 공략 자료구조 2중 for loop 을 구현해서 합이 Target 이 되는 인덱스를 반환한다. -> O(n^2) 의 시간 복잡도 를 가지게됨. Dictionary 를 사용하여 문제 공략 -> O(n) 시간 복잡도 접근방식 "두요소의 합이 target 의 값과 같아야한다" 라는 문장에서 어떻게 하면 딕셔너리를 사용해서 문제를 풀수 있을까 고민하게됨. 아래와같이 (Target - value) 의 나머지 값이 딕셔너리에 존재할경우 해당 인덱스 를 찾아 반환해주도록 구현. //Given : nums = [3,2,4],..
Uncle Bob 은 "어떠한 건물의 설계도면만 봐도 이건물의 기능을 알수 있어야한다" 라는 말을 하면서 실제 건축학 으로부터 영감을 받아 소프트웨어 개발 에 접목시켰다고한다. 이 건축 패턴을 "Clean Architecture" 라고 명하였고, 이 패턴을 사용하면 개발자들은 새로운 기능을 추가하거나, 버그를 고칠때 더이상 자신들이 작성한 얽히고 설킨 코드를 되짚어가며 시간을 낭비할 필요가 없어질것 이라고 하였다. 도대체 어떻게 그런 설계를 할수 있지? 라는 의문이 드는데, Uncle Bob 은 clean architecture 의 핵심 포인트를 아래와같이 설명한다. Framework 로 부터 독립적 이여야 한다. 자신이 만든 시스템은 라이브러리 를 하나의 도구로 사용해야한다. 절대로 주어진 라이브러리의..
WWDC 나 주변에서 dateFormatter 는 비싼 객체이고, 사용할때 신경써서 사용해야한다는 말을 들었다. 그럼 DateFormatter 를 언제, 어떻게 사용할때 성능저하를 일으킬까? DateFormatter 를 사용하는 데 어떤 부분에서 시간이 오래걸리는지 이 아티클 에서 XCTest 의 Measure 메소드를 사용해서 정리해놓았다. 이 글을 요약하면 아래와같은 상황을 남발할때 성능저하(실행 속도가 느려짐으로 전체 프로그램이 버벅이는 현상) 를 불러올수 있다고 한다. DateFormatter 생성할때. DateFormatter 의 프로퍼티를 변경할때 date(from: String) 을 실행할때 그럼 어떤 식으로 DataFormatter 를 사용해야할까? DateFormatter 가 생성되면 이..