오늘은 참여한지 21일차 입니다. 브론즈1의그리디알고리즘, 구현 문제들입니다.

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 21

220313 공부 일지 : 지금까지 모든 문제를 당일에 놓치지 않고 풀어서 기분 좋다!
습관이 든 만큼 앞으로도 매일 꾸준히 해야겠다.

 

220313 공부 일지

 


백준 Swift 1652번

// MARK: - 1652번
let N = Int(readLine()!)!
var room: [[String]] = []

for _ in 0..<N {
    room.append(readLine()!.map{String($0)})
}

var rowCount: Int = 0 // 가로 가능 횟수
for i in 0..<N {
    var count: Int = 0 // 2이상인지 체크하기 위해.
    var goCheck: Bool = false
    
    for j in 0..<N {
        if room[i][j] == "." {
            count += 1
        }
        else if room[i][j] == "X" {
            goCheck = true // 지금까지 쌓인 게 2 이상인지 체크하러 감.
        }
        
        if j == N - 1 { // X없이(or 끝에 X가 없이) 인덱스 끝까지 도달했을 떄,
            goCheck = true
        }
        
        if goCheck {
            if count >= 2 {
                rowCount += 1
            }
            count = 0 // X로 인해 체크했기 때문에, 다시 0으로 초기화.
            goCheck = false // check했으니 false.
        }
    }
}

var colCount: Int = 0 // 가로 가능 횟수
for i in 0..<N {
    var count: Int = 0 // 2이상인지 체크하기 위해.
    var goCheck: Bool = false
    
    for j in 0..<N {
        if room[j][i] == "." {
            count += 1
        }
        else if room[j][i] == "X" {
            goCheck = true // 지금까지 쌓인 게 2 이상인지 체크하러 감.
        }
        
        if j == N - 1 { // X없이(or 끝에 X가 없이) 인덱스 끝까지 도달했을 떄,
            goCheck = true
        }
        
        if goCheck {
            if count >= 2 {
                colCount += 1
            }
            count = 0 // X로 인해 체크했기 때문에, 다시 0으로 초기화.
            goCheck = false // check했으니 false.
        }
    }
}

print(rowCount, colCount)

 


백준 Swift 2167번

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

var numArray = Array(repeating: Array(repeating: 0, count: M + 1), count: N + 1)

for i in 1...N { // N행
    let numsInput = readLine()!.split(separator: " ").map{Int(String($0))!}
    
    for j in 1...M { // M열
        numArray[i][j] = numsInput[j-1]
    }

}

let k = Int(readLine()!)!

for _ in 0..<k {
    let input = readLine()!.split(separator: " ").map{Int(String($0))!}
    var sum: Int = 0
    
    for i in input[0]...input[2] {
        for j in input[1]...input[3] {
            sum += numArray[i][j]
        }
    }
    print(sum)
}

 


백준 Swift 2563번

// MARK: - 2563번
let N = Int(readLine()!)!
var paper = Array(repeating: Array(repeating: 0, count: 101), count: 101)

for _ in 0..<N {
    let input = readLine()!.split(separator: " ").map{Int(String($0))!}
    let (x, y) = (input[0], input[1])
    
    for i in y..<y+10 {
        for j in x..<x+10 {
            paper[i][j] = 1
        }
    }
    
}

print(paper.flatMap{$0}.filter{$0 == 1}.count)

 


백준 Swift 2750번

// MARK: - 2750번
let N = Int(readLine()!)!
var numArray: [Int] = []

for _ in 0..<N {
    numArray.append(Int(readLine()!)!)
}

numArray.sort(by: <)

for num in numArray {
    print(num)
}

 


백준 Swift 2851번

// MARK: - 2851번
var mushrooms: [Int] = []
for _ in 0..<10 {
    mushrooms.append(Int(readLine()!)!)
}

var scores: [Int] = []
for i in 0..<10 {
    var sum: Int = 0
    for j in 0...i {
        sum += mushrooms[j]
    }
    scores.append(sum)
}

var distance: [Int] = []
for score in scores {
    distance.append(abs(100 - score))
}

var indexes: [Int] = [] // 100과의 거리가 제일 가까운 index들 모음.
for (index, d) in distance.enumerated() {
    if d == distance.min()! {
        indexes.append(index)
    }
}

var maxScores: [Int] = []

for i in indexes {
    maxScores.append(scores[i])
}

print(maxScores.max()!)

 


DAY21 인증완료

DAY21 인증완료

반응형