일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
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 |
- 코테
- gitflow
- rxswift
- Realm
- combine
- DependencyInjection
- cleanarchitecture
- SwiftUI
- IOS
- MainScheduler
- 청년취업사관학교
- MethodSwilzzling
- RaceCondition
- 오픈채팅방
- DispatchQueue
- SRP
- DynamicMemberLookup
- GIT
- MainScheduler.asyncInstance
- DiffableDataSource
- leetcode
- 등굣길
- MainScheduler.Instance
- data_structure
- 프로그래머스
- CoreBluetooth
- swift
- SeSAC
- GCD
- 명품cppProgramming c++
- Today
- Total
목록Algorithm (12)
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. 문제가 오른쪽과 아래쪽으로만 움직일 ..
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(시:분 이 아니라 분으로 총 환산)만 계산해주면 어렵지..
https://programmers.co.kr/learn/courses/30/lessons/42888 코딩테스트 연습 - 오픈채팅방 오픈채팅방 카카오톡 오픈채팅방에서는 친구가 아닌 사람들과 대화를 할 수 있는데, 본래 닉네임이 아닌 가상의 닉네임을 사용하여 채팅방에 들어갈 수 있다. 신입사원인 김크루는 카카오톡 오 programmers.co.kr 1. 핵심은 출입로그 메시지에서 이름이 변경된 유저의 로그 내용을 변경해야 한다는 뜻이다. 일일이 서치해서 지우기에는 입력 받는데 O(N), 출력문으로 컨버팅 하는데 O(N) 으로 O(N^2)이므로 여유가 없다. 따라서 User를 클래스로 정의하고, 참조를 통해 해결해 볼 수 있다. 2. User는 id로 구분 가능한 Hashable 객체이다. 3. Chat 클..
https://programmers.co.kr/learn/courses/30/lessons/60057 코딩테스트 연습 - 문자열 압축 데이터 처리 전문가가 되고 싶은 "어피치"는 문자열을 압축하는 방법에 대해 공부를 하고 있습니다. 최근에 대량의 데이터 처리를 위한 간단한 비손실 압축 방법에 대해 공부를 하고 있는데, 문 programmers.co.kr 1. 기본적인 알고리즘은, 1칸씩 잘라보고, 그 다음 2칸씩 잘라보는 행위를 계속 반복하는 것이다. 이때 문자열이 1,000 자 라면 500자 까지만 잘라보면 되는데, 왜냐하면 501자를 자르게 되면 남은 길이가 499자 이므로 앞서 자른 문자와 무조건 일치하지 않는다. 따라서 전체길이 S 일 때 S/2 까지만 자르는 동작을 반복하면 된다. 2. 문자열의..