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

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 14

220306 공부 일지 : 그리디 유형 문제가 확실히 시간이 좀 더 걸리는 것 같다. 브론즈2 문제들도 뿌시자!

 

220306 공부 일지

 


백준 Swift 1434번

// MARK: - 1434번
let input = readLine()!.split(separator: " ").map{Int(String($0))!}
let (N, M) = (input[0], input[1])

let A = readLine()!.split(separator: " ").map{Int(String($0))!}
let B = readLine()!.split(separator: " ").map{Int(String($0))!}

let aSum = A.reduce(0, +)
let bSum = B.reduce(0, +)

print(aSum - bSum)

 


백준 Swift 2810번

// MARK: - 2810번
import Foundation

let N = Int(readLine()!)!
var seat = readLine()!.replacingOccurrences(of: "LL", with: "L")

if N <= seat.count + 1 {
    print(N)
}
else {
    print(seat.count + 1)
}

 


백준 Swift 2864번

// MARK: - 2864번
import Foundation
let input = readLine()!.split(separator: " ").map{String($0)}
let maxArray = input.map{(num: String) -> String in
    let maxNum = num.replacingOccurrences(of: "5", with: "6")
    
    return maxNum
}

let minArray = input.map{(num: String) -> String in
    let minNum = num.replacingOccurrences(of: "6", with: "5")
    
    return minNum
}

let numMaxArray = maxArray.map{Int($0)!}
let numMinArray = minArray.map{Int($0)!}

let answerMax = numMaxArray.reduce(0, +)
let answerMin = numMinArray.reduce(0, +)

print(answerMin, answerMax)

 


백준 Swift 2930번

// MARK: - 2930번
let R = Int(readLine()!)!
let sanguen = Array(readLine()!).map{String($0)}
let N = Int(readLine()!)!
var friends: [[String]] = Array(repeating: Array(repeating: "", count: R), count: N) // N행 R열

for i in 0..<N {
    var j: Int = 0
    let input = readLine()!.map{String($0)}
    
    for ch in input {
        friends[i][j] = ch
        j += 1
    }
    
}

var score: Int = 0

for i in 0..<N { // 가로로 루프 돎.
    for j in 0..<R {
        if (sanguen[j] == "S" && friends[i][j] == "P") || (sanguen[j] == "P" && friends[i][j] == "R") || (sanguen[j] == "R" && friends[i][j] == "S") { // 상근이가 이길 때,
            score += 2
        }
        else if (sanguen[j] == friends[i][j]) { // 비길 때,
            score += 1
        }
        else { // 질 때, (이 부분은 없어도 됨.)
            score += 0
        }
    }
}

print(score)

var maxScore: Int = 0

for i in 0..<R { // 세로로 루프 돎.
    var counting = [0, 0, 0] // S(가위), P(보), R(바위)
    for j in 0..<N {
        if friends[j][i] == "S" {
            counting[0] += 1
        }
        else if friends[j][i] == "P" {
            counting[1] += 1
        }
        else if friends[j][i] == "R" {
            counting[2] += 1
        }
    }
    
    var scoreArray: [Int] = []
    // 상근이가 S(가위)를 냈다면,
    scoreArray.append((counting[0] * 1) + (counting[1] * 2) + (counting[2] * 0))
    // 상근이가 P(보)를 냈다면,
    scoreArray.append((counting[0] * 0) + (counting[1] * 1) + (counting[2] * 2))
    // 상근이가 R(바위)를 냈다면,
    scoreArray.append((counting[0] * 2) + (counting[1] * 0) + (counting[2] * 1))
    
    maxScore += scoreArray.max()!
}

print(maxScore)

 


백준 Swift 5585번

// MARK: - 5585번
let N = 1000 - Int(readLine()!)!
var coinArray = Array(repeating: 0, count: 6) // 500엔, 100엔, 50엔, 10엔, 5엔, 1엔

coinArray[0] = N / 500
coinArray[1] = (N % 500) / 100
coinArray[2] = ((N % 500) % 100) / 50
coinArray[3] = (((N % 500) % 100) % 50) / 10
coinArray[4] = ((((N % 500) % 100) % 50) % 10) / 5
coinArray[5] = (((((N % 500) % 100) % 50) % 10) % 5) / 1

let sum = coinArray.reduce(0, +)

print(sum)

 


DAY14 인증완료

 

DAY14 인증완료

 

반응형