오늘은 참여한지 15일차 입니다.

22일 Basic 챌린지에 대한 상세한 내용은 아래 링크에서 확인할 수 있습니다.

 

https://developer-p.tistory.com/171

 

[22일 Basic 챌린지 참여] 알고리즘 DAY1

22 Basic Challenge Algorithm https://softsquared.notion.site/Algorithm-5328fab28619430dae2c782d4db6a556 Algorithm 베이직 챌린지 챌린지 대상 : 코딩 테스트 준비해야하는데, 한 번도 해본적은 없어. 일단..

developer-p.tistory.com

 

아래 깃허브 주소에서 백준 Swift 문제풀이를 확인하실 수 있습니다.

 

https://github.com/SuminPark-developer/BaekJoonPS

 

GitHub - SuminPark-developer/BaekJoonPS: 백준 Swift PS

백준 Swift PS. Contribute to SuminPark-developer/BaekJoonPS development by creating an account on GitHub.

github.com

 


 

Day 15

220307 공부 일지 : 그리디 알고리즘 문제를 더 풀어봐야겠다.

 

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 인증완료

 

DAY15 인증완료

반응형