[Swift] 프로그래머스154539 뒤에 있는 큰 수 찾기
·
📝 코테/프로그래머스
import Foundation func solution(_ numbers: [Int]) -> [Int] { var stack = [Int]() var res = Array(repeating: -1, count: numbers.count) for i in 0..
[Swift] 프로그래머스181188 요격시스템
·
📝 코테/프로그래머스
import Foundation func solution(_ targets:[[Int]]) -> Int { var targets = targets var e = 0 targets = targets.sorted { ($0[1], $0[0]) = e { res += 1 e = target[1] } } return res } 이차원배열의 정렬은 sorted { ($0[1], $0[0]) < ($1[1], $1[0]) } 개구간으로 쏘지만 폐구간으로도 비교할 수 있었다.
해커스교육그룹 iOS부문 필기/면접후기
·
🧑🏻‍💼 후기/면접후기
해커스 교육그룹 - 중견기업 - 교육업계 - 강남역 근처 필기 후기 - 손코딩으로 나왔다. - 프로그래머스에서 연습하던대로 생각나던대로 풀었다. - 시간이 조금 모자라서 다 풀지는 못했다. 면접 후기 - 세미정장 이상 입어야해서 풀세팅 정장을 입고 가야할 것 같은 느낌?을 받았다. - 대전에 거주 중이어서 면접비는 3만원 받았다. - 면접관님이 블로그에서 다른 회사들 면접후기를 보셨다고 하셔서 당황했다ㅋㅋ - 면접관님이 면접 시간 내내 배려해주시는 것이 느껴져서 좋았다. - 요즘 그룹 프로젝트 중이라 준비를 많이 못해가서 대답을 못했던 것들이 너무 아쉬웠다. 잘못 대답했던 질문 MVVM, MVC 차이점 제리님 블로그에 있었던 건데 ㅎㅎ 이번엔 대답할 기회를 드리겠습니다. Q. MVC와 MVVM의 차이가 ..
[Swift] 프로그래머스92342 양궁대회
·
📝 코테/프로그래머스
import Foundation func solution(_ n:Int, _ info:[Int]) -> [Int] { var max_diff:Int = 0 var max_lst:[Int] = [] var dfs = [(0,0,0,0,Array(repeating: 0, count:11))] while dfs.count > 0 { let now = dfs.removeLast() let ascore = now.0 let lscore = now.1 let idx = now.2 let cnt = now.3 var lst = now.4 if cnt > n { continue } if idx > 10 { let diff = lscore - ascore if diff > max_diff { lst[10] = n - c..
[Swift] 프로그래머스118667 두 큐 합 같게 만들기
·
📝 코테/프로그래머스
import Foundation var res = 0 func solution(_ queue1:[Int], _ queue2:[Int]) -> Int { var q1Sum = queue1.reduce(0, +) let q2Sum = queue2.reduce(0, +) let half = (q1Sum + q2Sum) / 2 let qArr = queue1 + queue2 var q1p = 0 var q2p = queue1.count var count = 0 while q2p < qArr.count && q1p half { q1Sum -= qArr[q1p] q1p += 1 } else if q1Sum < half { q1Sum += qArr[q2p] q2p += 1 } else { return count } ..
[Swift] 프로그래머스150369 택배배달과 수거하기
·
📝 코테/프로그래머스
import Foundation func solution(_ cap:Int, _ n:Int, _ deliveries:[Int], _ pickups:[Int]) -> Int64 { var ans: Int64 = 0 var d = 0 var p = 0 for i in stride(from: n-1, through: 0, by: -1) { d += deliveries[i] p += pickups[i] while d > 0 || p > 0 { d -= cap p -= cap ans += Int64(( i + 1) * 2) } } return ans }
인터페이스
·
💻 CS/용어
인터페이스 서로 다른 소프트웨어 구성 요소가 서로 상호 작용하는 방법을 지정하는 계약 또는 규칙 집합을 정의하기 위해 컴퓨터 과학 및 프로그래밍에서 사용되는 개념 인터페이스는 두 개 이상의 시스템 간에 경계 또는 브리지 역할을 하여 표준화된 방식으로 통신하고 정보를 교환할 수 있습니다. 프로그래밍에서 인터페이스는 일반적으로 구현 클래스 또는 모듈이 지원해야 하는 작업 또는 동작을 정의하는 메서드 또는 함수 모음으로 구성됩니다. 이러한 방법은 서로 다른 구성 요소가 서로 상호 작용하는 방법에 대한 청사진 역할을 합니다. 인터페이스는 소프트웨어 개발에서 추상화 및 모듈성을 달성하는 방법을 제공합니다. 이를 통해 개발자는 구성 요소의 구현 세부 사항을 다른 구성 요소와의 사용 또는 상호 작용에서 분리할 수 있..
Swinject를 사용한 iOS 의존성 주입
·
🍎 iOS/Swift
배경 Inversion Of Control (제어의 역전) 개발자가 작성한 객체나 메서드의 제어를 개발자가 아니라 외부에 위임하는 설계 원칙 객체 지향 프로그래밍에서는 코드에서 의존성을 제거해야한다. 의존성 주입 하나의 객체가 다른 객체에게 의존성을 제공하는 기술 의존성 주입은 IOC를 달성하는 방법 중 하나다. 이것의 이면에 있는 아이디어는 별도의 개체가 필요한 의존성을 생성하고 클라이언트에 전달하도록 하는 것이다. 이점 1. 테스트 하기 편하다. 2. 의존성 역전 원칙(DIP)를 지킬 수 있다. DI Container 객체를 인스턴스화하고 구성하는 방법을 알고있는 객체 DI Container는 의존성 주입을 구현하기 위한 디자인 패턴이다. 복잡한 의존성을 해결하기 위해 사용한다. Swinject Sw..
[Swift] 순열과 조합 간단히 구하기
·
📝 코테/꿀팁
import Foundation let arr = [1, 2, 3] let n = 3 // O(n!) func perm(_ current: [Int]) { if current.count > n { return } arr.forEach { perm(current + [$0]) } if current.count < n { return } print(current) } perm([]) // O(2^n) func comb(_ current: [Int], _ idx: Int) { guard current.count < n else { print(current) return } for i in idx..
[Swift] 프로그래머스150368 이모티콘 할인행사
·
📝 코테/프로그래머스
import Foundation func solution(_ users:[[Int]], _ emoticons:[Int]) -> [Int] { var answer = [0, 0] func getAnswer(_ current: [Int]) { if current.count > emoticons.count { return } stride(from: 10, through: 40, by: 10).forEach { getAnswer(current + [$0]) } if current.count < emoticons.count { return } var result = [0, 0] users.forEach { user in var userInfo = [0, 0] for i in current.indices { if ..
JerryiOS
'분류 전체보기' 카테고리의 글 목록 (5 Page)