오늘은 참여한지 15일차 입니다.
22일 Basic 챌린지에 대한 상세한 내용은 아래 링크에서 확인할 수 있습니다.
https://developer-p.tistory.com/171
아래 깃허브 주소에서 백준 Swift 문제풀이를 확인하실 수 있습니다.
https://github.com/SuminPark-developer/BaekJoonPS
Day 15
220307 공부 일지 : 그리디 알고리즘 문제를 더 풀어봐야겠다.
백준 Swift 8710번
// MARK: - 8710번
import Foundation
let input = readLine()!.split(separator: " ").map{Double(String($0))!}
let(k, w, m) = (input[0], input[1], input[2])
var count: Int = Int(ceil((w - k) / m))
print(count)
백준 Swift 14471번
// MARK: - 14471번
let JOI = readLine()!.split(separator: " ").map{Int(String($0))!}
let (N, M) = (JOI[0], JOI[1]) // 2N개의 칸, M장의 카드
var wins: [Int] = [] // 당첨 도장 모음
var loses: [Int] = [] // 꽝 도장 모음
var answer: Int = 0
for _ in 0..<M {
let input = readLine()!.split(separator: " ").map{Int(String($0))!}
wins.append(input[0])
loses.append(input[1])
}
wins.sort(by: >) // 내림차순으로 정렬해야 최솟값을 구할 수 있음.
var count = wins.filter{$0 >= N}.count // 기존 입력받은 것들 중, 돈을 내지 않아도 이미 상품수령조건을 만족하는 카드들의 개수.
if count >= M - 1 { // 이미 M-1개 이상의 경품을 얻을 수 있으면,
answer = 0
}
else {
for i in count..<wins.count {
answer += N - wins[i] // 경품 1개 더 얻기 위해 필요한 금액.
count += 1 // 경품 1개 추가
if count >= M - 1 {
break
}
}
}
print(answer)
백준 Swift 14487번
// MARK: - 14487번
let n = Int(readLine()!)!
let input = readLine()!.split(separator: " ").map{Int(String($0))!}
let answer = input.reduce(0, +) - input.max()!
print(answer)
백준 Swift 14659번
// MARK: - 14659번
let N = Int(readLine()!)!
let mountain = readLine()!.split(separator: " ").map{Int(String($0))!}
var killArray: [Int] = []
for i in 0..<N {
var kill: Int = 0 // 킬 수
let standard: Int = mountain[i] // 기준 봉우리
if i == N - 1 { // 마지막 봉우리일 땐,
killArray.append(0) // 0킬
break
}
else {
for j in i+1..<N {
if mountain[j] > standard { // (기준 봉우리보다) 다음 봉우리가 더 높으면 끝.
break
}
kill += 1 // 다음 봉우리가 더 높지 않으면,
}
killArray.append(kill)
}
}
print(killArray.max()!)
백준 Swift 16756번
// MARK: - 16756번
let N = Int(readLine()!)!
let input = readLine()!.split(separator: " ").map{Int(String($0))!}
var minArray: [Int] = []
for i in 0..<N-1 {
minArray.append(abs(input[i + 1] - input[i]))
}
print(minArray.min()!)
DAY15 인증완료
반응형
최근댓글