전체 글
-
[iOS] UITextField를 RxDelegateProxy를 이용하여 사용해보자스위프트 2023. 7. 29. 13:27
TextField에서 엔터를 쳤을 때 동작을 하고 싶은데.. 생각보다 RxSwift에서 UITextField에 대한 지원이 아쉬웠습니다. // RxCocoa에 있는 UITextField+Rx extension Reactive where Base: UITextField { /// Reactive wrapper for `text` property. public var text: ControlProperty { value } /// Reactive wrapper for `text` property. public var value: ControlProperty { return base.rx.controlPropertyWithDefaultEvents( getter: { textField in textField.t..
-
[프로그래머스] 주차 요금 계산 (2022 KAKAO BLIND RECRUITMENT) Swift알고리즘 2022. 9. 6. 23:31
문제 내용 https://school.programmers.co.kr/learn/courses/30/lessons/92341 여기서 읽어보세요잉 제한사항 fees.count = 4 1 ≤ records ≤ 1,000 전체 코드 import Foundation func solution(_ fees:[Int], _ records:[String]) -> [Int] { // 1 var inTimes: [String: [Int]] = [:] var outTimes: [String: [Int]] = [:] var carNumbers: Set = [] // 2 for record in records { let recordArr = record.split { $0 == " " }.map { String($0) } le..
-
[백준] 1,2,3 더하기 3 (15988번)알고리즘 2021. 10. 27. 18:00
문제 내용 정수 n 이 주어졌을 때, n 을 1, 2, 3 의 합으로 나타내는 방법의 수를 구하는 프로그램 작성. n = 4 이라고 하면 1 + 1 + 1 + 1, 1 + 1 + 2, 1 + 2 + 1, 2 + 1 + 1 2 + 2, 1 + 3, 3 + 1 이렇게 총 7개가 되어 7을 print 하면 된다. 첫 줄에 테스트 케이스의 개수 T 가 주어지고 T 번동안 정수 n 이 주어진다. 방법의 수를 1,000,000,009 로 나눈 나머지를 출력 전체 코드 // 1. n 의 최댓값이 1,000,000 이므로 배열의 크기를 1,000,001 만큼 생성하였음 var arr: [Int] = Array(repeating: 0, count: 1_000_001) // 2. 어디까지 값을 최신화하였는지 저장할 값 v..
-
[프로그래머스] n^2 배열 자르기 (월간 코드 챌린지 시즌3) Swift알고리즘 2021. 10. 26. 14:20
문제 내용 https://programmers.co.kr/learn/courses/30/lessons/87390 코딩테스트 연습 - n^2 배열 자르기 정수 n, left, right가 주어집니다. 다음 과정을 거쳐서 1차원 배열을 만들고자 합니다. n행 n열 크기의 비어있는 2차원 배열을 만듭니다. i = 1, 2, 3, ..., n에 대해서, 다음 과정을 반복합니다. 1행 1열부 programmers.co.kr 전체 코드 import Foundation func solution(_ n:Int, _ left:Int64, _ right:Int64) -> [Int] { // 1. Int64 인 값과 계산을 많이해서 변경하였음 let n = Int64(n) // 2. 결과 값 저장용 var result: [..
-
[프로그래머스] 피로도 (위클리 챌린지 12주차) Swift알고리즘 2021. 10. 25. 13:15
문제 내용 던전 (최소 필요 피로도, 소모 피로도) 와 피로도가 주어진다.최소 필요 피로도 >= 소모 피로도 이고,피로도 >= 최소 필요 피로도 라면 그 던전을 탐험할 수 있다.그 던전을 탐험하게 되면 소모 피로도 만큼 피로도가 차감된다.최대 몇 개의 던전을 탐험할 수 있나 (각 던전은 1번만 탐험할 수 있음) 전체 코드 import Foundation func solution(_ k:Int, _ dungeons:[[Int]]) -> Int { // 1. 결과 저장용 var result = 0 // 2. 방문하는 함수 func visit(_ orders: [Int]) { // 3. 만약 orders 에 모든 값이 저장이 되었다면 if orders.count == dungeons.count { // 4. ..
-
[프로그래머스] 교점에 별 만들기 (위클리 챌린지 10주차) Swift알고리즘 2021. 10. 14. 15:50
문제 내용 n개의 직선이 주어지면, 직선의 교점 중에 정수로 표현되는 좌표만 별 표시를 해라. Ax + By + E = 0, Cx + Dy + F = 0 이라는 두 직선의 교점이 유일하게 존재할 경우, 그 교점은 x = (BF - ED) / (AD - BC) y = (EC - AF) / (AD - BC) AD - BC = 0 인 경우 두 직선은 평행 또는 일치함. 전체 코드 import Foundation func solution(_ line:[[Int]]) -> [String] { // 1. x, y 위치 저장용 배열 var location: [(x: Int, y: Int)] = [] // 2. x 의 최대 최솟값과 y 의 최대 최솟값을 저장하기 위한 값 var maxX = Int.min var min..
-
[백준] 톱니바퀴 (14891번) Swift알고리즘 2021. 10. 12. 14:44
문제 내용 4개의 톱니바퀴가 존재한다.톱니는 S, N 극으로 존재하고회전하는 톱니 A 와 맞닿은 톱니 B 가 맞닿은 부분이 같은 극이라면 회전하지 않고서로 다른 극이라면 회전한다.모두 회전하고 난 후 톱니바퀴의 12시 방향으로 총 점수를 내라.1번 톱니의 12시 방향이 S 극이면 + 1, 2번은 + 2, 3번은 + 4, 4번은 + 8 전체 코드 import Foundation // 1. 톱니를 저장할 배열 var gears: [Gear] = [] // 2. 결과를 저장할 값 var result = 0 // 3. 4개의 톱니의 값을 얻어옴 for _ in 0.. Int { return info[leftIndex] } } 결론 구조체로 만들어서 풀면 확실히 코드가 길어지는 것 같은데 구조체 생성 외에는 코드..
-
[백준] 구슬 탈출 2 (13460번) Swift알고리즘 2021. 10. 11. 15:04
문제 내용 직사각형 배열에 빨간 구슬 1개, 파란 구슬 1개와 구멍 1개가 존재한다. 왼쪽, 오른쪽, 위, 아래로 기울이기를 통해 구슬을 이동시킬 수 있다. 10번 이하의 기울이기를 통해 빨간 구슬만 구멍에 빼낼 수 있는지 확인해라. 1칸씩 이동하는 것이 아닌 벽에 막히거나 다른 구슬에 막혀서 멈춰질 때 까지 기울이고 있는 것이다. 전체 코드 // 1. n, m 읽고 설정 let nm = readLine()!.split { $0 == " " }.map { Int(String($0))! } let n = nm[0], m = nm[1] // 2. 위치를 저장할 배열 var location: [[String]] = Array(repeating: [], count: n) // 3. 방문에 대해 저장을 할 dic..