일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
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 | 31 |
- swift
- MainScheduler
- MainScheduler.asyncInstance
- GIT
- data_structure
- 등굣길
- 코테
- SeSAC
- rxswift
- CoreBluetooth
- 청년취업사관학교
- gitflow
- SwiftUI
- 오픈채팅방
- DiffableDataSource
- 명품cppProgramming c++
- SRP
- MethodSwilzzling
- 프로그래머스
- cleanarchitecture
- DynamicMemberLookup
- leetcode
- RaceCondition
- DependencyInjection
- DispatchQueue
- Realm
- MainScheduler.Instance
- IOS
- GCD
- combine
- Today
- Total
목록분류 전체보기 (73)
Do.
https://leetcode.com/problems/merge-two-sorted-lists/ Merge Two Sorted Lists - LeetCode Level up your coding skills and quickly land a job. This is the best place to expand your knowledge and get prepared for your next interview. leetcode.com 오랜만에 리트코드 - 두개의 `정렬된` 링크드 리스트를 하나의 정렬된 리스트로 만들어 내는 것 - 기본 알고리즘은 아래와 같다. 위와 같이 두개의 링크드 리스트가 있으면 각 리스트를 노드를 가리키는 참조 인스턴스가 있다. Left와 Right의 CurrentNode의 Val중 ..
https://www.acmicpc.net/problem/1158 1158번: 요세푸스 문제 첫째 줄에 N과 K가 빈 칸을 사이에 두고 순서대로 주어진다. (1 ≤ K ≤ N ≤ 5,000) www.acmicpc.net 수가 작아서, remove(at:)을 써도 되는 문제, 만약 n이 커진다면, 링크드리스트나, 다른 접근 방법 필요 func boj1158() { let input = readLine()!.split(separator: " ").map{ Int(String($0))! } let (n, k) = (input[0], input[1]) var arr: [Int] = .init(1...n) var count = k - 1 var result = "") print(result) } boj1158()
https://programmers.co.kr/learn/courses/30/lessons/42898 코딩테스트 연습 - 등굣길 계속되는 폭우로 일부 지역이 물에 잠겼습니다. 물에 잠기지 않은 지역을 통해 학교를 가려고 합니다. 집에서 학교까지 가는 길은 m x n 크기의 격자모양으로 나타낼 수 있습니다. 아래 그림은 m = programmers.co.kr - 목표 지점까지 가장 빠르게 도착하는 패스가 몇 개인지 를 물어보는 문제로, 문제 유형이 DP로 이미 공개되어있어서 쉽게 접근할 수 있다. 1. 우선 m x n을 row x col 좌표로 두고, 시작점 0,0을 1로 초기화 나머지를 0으로 초기화 한다. 2. puddles이 있는 경우는 -1로 초기화 한다. 3. 문제가 오른쪽과 아래쪽으로만 움직일 ..
소개 Cache(캐시)는 컴퓨팅에서 데이터를 일시적으로 저장하는 것을 뜻한다. 어플리케이션에서 캐시는 요긴하게 쓰이는데, 예를 들어 네트워크 요청을 할 때, 한 번 요청한 결과에 대해서 캐시를 해두고, 다음에 해당 요청을 한번 더 할 때 네트워크 요청을 하지 않고 캐시에서 결과를 가져 올 수 있다. 정리하자면 아래와 같은 장점이 있다. 클라이언트에서는 요청 결과를 훨씬 더 빨리 화면에 보여줄 수 있다. 서버에서는 동일한 요청에 대해 동작을 중복 수행하지 않아도 된다. URLCache iOS에서 네트워크 요청을 하기 위해서는 URLSession이라는 API를 사용하는데, URLSession의 Task에는 대표적으로 몇가지 종류가 있다. DataTask DownloadTask Steam이나, Socket, ..
https://programmers.co.kr/learn/courses/30/lessons/92342 코딩테스트 연습 - 양궁대회 문제 설명 카카오배 양궁대회가 열렸습니다. 라이언은 저번 카카오배 양궁대회 우승자이고 이번 대회에도 결승전까지 올라왔습니다. 결승전 상대는 어피치입니다. 카카오배 양궁대회 운영위원 programmers.co.kr - 너무 무식하게 접근했는데, 다른 사람 풀이보고 공부해야 겠다. - 기본적으로 bfs 접근 방식이니, 라이언의 info를 set형태로 visited를 체크하면 속도는 좀 올라갈듯. import Foundation let scoreBoard = [10,9,8,7,6,5,4,3,2,1,0] struct Queue { var leftStack: [Game] = [] va..
https://programmers.co.kr/learn/courses/30/lessons/92335 코딩테스트 연습 - k진수에서 소수 개수 구하기 문제 설명 양의 정수 n이 주어집니다. 이 숫자를 k진수로 바꿨을 때, 변환된 수 안에 아래 조건에 맞는 소수(Prime number)가 몇 개인지 알아보려 합니다. 0P0처럼 소수 양쪽에 0이 있는 경우 P0처럼 소 programmers.co.kr 1. 입력받은 숫자를 k진수로 바꾸고, 변환된 정수에서 조건에 맞는 소수를 찾아내는 문제 2. 0P0 조건을 4줄이나 설명되어 있는데, 잘 생각해보면 그냥 0을 기점으로 수를 나눠버리면 된다. 3. 소수를 구하는 가장 빠른 방법을 생각해보면 문제는 쉽게 풀린다. import Foundation func solu..
https://programmers.co.kr/learn/courses/30/lessons/92341?language=swift 코딩테스트 연습 - 주차 요금 계산 [180, 5000, 10, 600] ["05:34 5961 IN", "06:00 0000 IN", "06:34 0000 OUT", "07:59 5961 OUT", "07:59 0148 IN", "18:59 0000 IN", "19:09 0148 OUT", "22:59 5961 IN", "23:00 5961 OUT"] [14600, 34400, 5000] programmers.co.kr 1. 차량 출입과 그 시간을 계산하는게 핵심 2. 해당 차량의 총 주차장 이용 시간은 PlainTime(시:분 이 아니라 분으로 총 환산)만 계산해주면 어렵지..
Combine을 사용할 때, debounce와 같은 오퍼레이터를 사용하면 scheduler를 지정해 주어야 한다. (그 외에도 scheduler를 지정해주는 상황) 이때 지정해 줄 수 있는 것은 RunLoop.main 과 DispatchQueue.main 인데 이 둘은 무슨 차이일까? query.debounce(for: .milliseconds(800), scheduler: RunLoop.main) query.debounce(for: .milliseconds(800), scheduler: DispatchQueue.main) 직접 실행해 보면 얼핏 차이가 없는 것처럼 보이지만 실제로는 중요한 차이가 있다. RunLoop.main 를 스케줄러로 사용하면 사용자의 터치 반응 등의 이벤트가 전달되지 않는다. 따..