오늘은 참여한지 14일차 입니다.
22일 Basic 챌린지에 대한 상세한 내용은 아래 링크에서 확인할 수 있습니다.
https://developer-p.tistory.com/171
아래 깃허브 주소에서 백준 Swift 문제풀이를 확인하실 수 있습니다.
https://github.com/SuminPark-developer/BaekJoonPS
Day 14
220306 공부 일지 : 그리디 유형 문제가 확실히 시간이 좀 더 걸리는 것 같다. 브론즈2 문제들도 뿌시자!
백준 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 인증완료
반응형
최근댓글