일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
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 |
- ios
- swiftUI
- SwiftUI_Preview_Provider
- Java
- kakaomap
- Alert
- SWIFT
- segue
- ViewModifier
- pod install
- MapKit
- NotificationCenter
- alamofire
- image
- programmers
- snapkit
- 백준
- format형식
- UserDefaults
- android
- CoreLocation
- EventKit
- Appearance변경
- cocoapods
- 코딩테스트
- autolayout
- ios15
- UIStackView
- Kotlin
- AsyncImage
- Today
- Total
목록전체 글 (68)
감자주먹밥
문제 2798번: 블랙잭 2798번: 블랙잭 첫째 줄에 카드의 개수 N(3 ≤ N ≤ 100)과 M(10 ≤ M ≤ 300,000)이 주어진다. 둘째 줄에는 카드에 쓰여 있는 수가 주어지며, 이 값은 100,000을 넘지 않는 양의 정수이다. 합이 M을 넘지 않는 카드 3장 www.acmicpc.net 문제 해결 부른 값 보다 크지 않은 가까운 값 뽑거나, 같은 값을 출력해야 한다. 3중 for문으로 카드 3장을 선택해 합하고, 맞는 값인지 확인하기. 코드 var info: [Int] = readLine()!.split(separator: " ").map{Int($0)!} var card: [Int] = readLine()!.split(separator: " ").map{Int($0)!}.sorted(by:
화면 전환하는 방법 storyboard에서 전환 code로 전환 먼저 storyboard에서 전환하는 것 부터 확인하겠습니다. storyboard에서 item을 오른쪽 클릭하여 다른 View로 옮기면 이런 화면이 뜹니다. Show 연결된 새 화면으로 이동합니다. Navigation Stack에 하나씩 쌓여 관리됩니다. Show Detail IPad 에서 사용하면 SplitView의 DetailView가 새 화면으로 대치됩니다. PresentModally 원래 화면에 새 화면이 덮어집니다. Show와 다르게 Navigation Stack에 영향은 없습니다. Present As Popover IPad 에서 사용하면 아래 사진처럼 작은 화면이 뜹니다. IPhone 에서는 PresentModally와 비슷한 동..
문제 코딩테스트 연습 - 체육복 문제 분석 여분이 있는 학생은 앞, 뒤 학생에게만 빌려줄 수 있고, 여분이 있어도 도난 당했을 수 있다는 전제를 처리를 하고, 빌려주는 로직을 짜면 될 거 같다. 알고리즘 Set의 차집합을 활용하여 lost와 reserve 배열을 비교하여 여유분을 도둑맞은 처리를 해 준다. reserve의 값을 가지고 lost를 순회하면서 빌려줄 수 있는지 확인, 가능하다면 삭제처리(대여)를 한다 총 인원 수와 lost의 배열 개수를 빼서 리턴한다. 코드 import Foundation func solution(_ n:Int, _ lost:[Int], _ reserve:[Int]) -> Int { //여벌을 가져왔지만 도난당할 수 있으니 그거에 대한 전처리 먼저한다. var losts =..
문제 코딩테스트 연습 - 프린터 문제 해결 프린터 풀에서 최대 중요도 수를 가져온다. 프린터 풀 앞에서 부터 최대 중요도 수를 체크한다. 같다면 풀에 값을 삭제하고 max를 갱신시킨다. 출력 카운트를 늘리고, 요청 문서 위치를 갱신한다. 다르다면 뒤로 보내는 작업을 한 후, 요청한 문서의 위치를 갱신시킨다. 마지막으로 요청한 문서가 출력되면 position은 -1이 되어 반복문을 빠져 나오고 값을 출력한다. 코드 func solution(_ priorities:[Int], _ location:Int) -> Int { var position = location var pool = priorities var max = pool.max() var count = 0 while !pool.isEmpty && po..
문제 코딩테스트 연습 - 기능개발 문제 해결 progresses 배열이 없어질 때 까지 반복을 한다. 첫 번째 element가 100 미만이면 진행도를 더해주고, count를 확인해 1이상이면 answer에 추가한다. 만약 100이상이라면 큐 처럼 가장 앞 원소를 삭제하고 count를 하나 늘린다. 위 작업을 반복하다 하나만 남았을 때 count만 올리고 나가지게 된다. 그러므로 바깥쪽에 count를 확인해 추가를 해 준다. 코드 func solution(_ progresses:[Int], _ speeds:[Int]) -> [Int] { var pro = progresses var spd = speeds var count = 0 var answer: [Int] = [] while (!pro.isEmpty..
문제 코딩테스트 연습 - H-Index 문제 해결 먼저 H-Index 산출법을 알아야 한다. h-index 산출 방법 발표 논문을 피인용횟수가 많은 순으로 정렬. 피인용횟수가 높은 순으로 번호를 부여. 논문의 번호(No)와 피인용횟수를 비교하여 피인용횟수가 논문의 번호(No)와 같거나 큰 번호(No)가 연구자의 h-index가 됩니다. 논문 인용 횟수를 내림차순으로 정렬한다. 배열의 index+1 값을 No.라고 생각하고 최초로 No.와 같거나 큰 인용횟수를 찾아 return한다. 코드 func solution(_ citations:[Int]) -> Int { var hIndex = citations.sorted(by: >) var answer = 0 for i in (0..).enumerated() {..
문제 코딩테스트 연습 - 가장 큰 수 해결 과정 전혀 어떻게 풀어야 할 지 감이 안 잡혔다. 그냥 모든 경우의 수를 만들고 비교하자니 오래 걸릴 것 같았고, 그 외의 방법은 아무리 생각해도 떠오르지 않았다. 결국은 풀이과정을 검색해서 알아보았다. 받은 수들을 3번 반복하여 저장하고 문자열로 비교 정렬한다. 이 방법을 사용해서 금방 만들어 보았다. var DictInt: [Int:String] = Dictionary(uniqueKeysWithValues: case3.map({ var temp: String = String($0) temp.append(temp+temp) return ($0, temp) })) var arr: [Int] = DictInt.sorted(by: {$0.value > $1.valu..
문제 코딩테스트 연습 - K번째수 코드 func solution(_ array:[Int], _ commands:[[Int]]) -> [Int] { var answer: [Int] = [] for index in 0..
AutoLayout? Autolayout은 동적으로 뷰 계층 구조에 있는 모든 뷰의 크기와 위치를 계산합니다. 기본적으로 constraints를 설정하여 View의 크기를 계산하여 배치하게 됩니다. Top, Bottom, Leading, Trailing Constraints를 설정할 수 있습니다. 아래 AspectRatio는 비율로 아이템 너비,높이를 설정할 수 있고, Equal Widths/Heights는 두 개의 아이템의 너비, 높이를 같게 설정할 수 있습니다. Constraint를 설정하게되면 Inspector에서 이렇게 확인 할 수 있습니다. Relation → 기본으로 Equal으로 되어있는데 ≤, ≥ 도 설정할 수 있습니다. Constant → AddNewConstraint를 할 때 설정하는 ..
입력 readLine() var input = readLine()! //String 으로 들어온다. var input = readLine()!.split(separator: " ").map {Int($0)!} //공백있는 숫자 나눠서 받을 때 강제 언래핑 해주는 것은 readLine의 타입이 Optional이 붙은 문자열이기 때문이다. 공백이 들어올 수 도 있으니깐! 진법 변환 n진수를 10진수로 변환 let binary = "111" // let decimal = Int(binary, radix: 2)! // radix가 현제 진법을 나타낸다. 10진수를 n진수로 변환 let decimal = 5 let binary = String(decimal, radix: 2) //uppercase를 true로 해..