일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
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 |
- ios
- EventKit
- kakaomap
- MapKit
- UIStackView
- programmers
- 코딩테스트
- image
- Kotlin
- CoreLocation
- UserDefaults
- SWIFT
- alamofire
- SwiftUI_Preview_Provider
- 백준
- swiftUI
- AsyncImage
- Alert
- segue
- NotificationCenter
- android
- snapkit
- cocoapods
- pod install
- format형식
- ViewModifier
- Java
- ios15
- autolayout
- Appearance변경
- Today
- Total
목록알고리즘/프로그래머스 (6)
감자주먹밥
문제 코딩테스트 연습 - 체육복 문제 분석 여분이 있는 학생은 앞, 뒤 학생에게만 빌려줄 수 있고, 여분이 있어도 도난 당했을 수 있다는 전제를 처리를 하고, 빌려주는 로직을 짜면 될 거 같다. 알고리즘 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..