일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
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 |
- EventKit
- swiftUI
- pod install
- Appearance변경
- MapKit
- 백준
- CoreLocation
- android
- segue
- 코딩테스트
- SwiftUI_Preview_Provider
- ViewModifier
- kakaomap
- format형식
- snapkit
- ios
- Java
- UserDefaults
- Kotlin
- ios15
- programmers
- alamofire
- cocoapods
- AsyncImage
- Alert
- image
- NotificationCenter
- SWIFT
- autolayout
- UIStackView
- Today
- Total
목록코딩테스트 (10)
감자주먹밥
문제 7568번: 덩치 7568번: 덩치 우리는 사람의 덩치를 키와 몸무게, 이 두 개의 값으로 표현하여 그 등수를 매겨보려고 한다. 어떤 사람의 몸무게가 x kg이고 키가 y cm라면 이 사람의 덩치는 (x, y)로 표시된다. 두 사람 A 와 B의 덩 www.acmicpc.net 문제 해결 키, 몸무게 둘 다 큰 사람이 덩치가 크다는 것을 기억해두자. tuple을 사용하여 입력받은 값을 저장하고, 하나씩 비교하면 해결 할 수 있다! 코드 typealias info = (Int, Int) var count: Int = Int(readLine()!)! var people: [info] = []//[(55, 185), (58, 183), (88, 186), (60, 175), (46, 155)] var ra..
문제 2231번: 분해합 2231번: 분해합 어떤 자연수 N이 있을 때, 그 자연수 N의 분해합은 N과 N을 이루는 각 자리수의 합을 의미한다. 어떤 자연수 M의 분해합이 N인 경우, M을 N의 생성자라 한다. 예를 들어, 245의 분해합은 256(=245+2+4+5)이 www.acmicpc.net 문제 해결 가장 작은 수부터 입력받은 수 전까지 하나씩 올라가며 분해합이 입력받은 값과 맞는지 확인하면 된다. 시간이 많이 들긴 하지만 범위가 크지 않아 성공할 수 있다. 각 자리수의 합은 나머지로 구할 수 있었지만, map과 reduce를 써보고 너무 재미있어서 적용해 봤다. 코드 var input = Int(readLine()!)! var answer = 0 var sum = 0 for item in (i..
문제 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:
문제 코딩테스트 연습 - 체육복 문제 분석 여분이 있는 학생은 앞, 뒤 학생에게만 빌려줄 수 있고, 여분이 있어도 도난 당했을 수 있다는 전제를 처리를 하고, 빌려주는 로직을 짜면 될 거 같다. 알고리즘 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..
입력 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로 해..