[Swift] 7569번 : 토마토
https://www.acmicpc.net/problem/7569 7569번: 토마토 첫 줄에는 상자의 크기를 나타내는 두 정수 M,N과 쌓아올려지는 상자의 수를 나타내는 H가 주어진다. M은 상자의 가로 칸의 수, N은 상자의 세로 칸의 수를 나타낸다. 단, 2 ≤ M ≤ 100, 2 ≤ N ≤ 100, www.acmicpc.net import Foundation var demessions = readLine()! .split(separator: " ") .compactMap { Int($0) } let X = demessions[1] let Y = demessions[0] let Z = demessions[2] print(BFS(X, Y, Z)) func BFS(_ X: Int, _ Y: Int, _..
2024.03.18
[Swift] 10026번 : 적록색약
https://www.acmicpc.net/problem/10026 10026번: 적록색약 적록색약은 빨간색과 초록색의 차이를 거의 느끼지 못한다. 따라서, 적록색약인 사람이 보는 그림은 아닌 사람이 보는 그림과는 좀 다를 수 있다. 크기가 N×N인 그리드의 각 칸에 R(빨강), G(초록) www.acmicpc.net import Foundation let RED = "R" let GREEN = "G" let BLUE = "B" var boardRGB: [[String]] = [] var boardRB: [[String]] = [] final class BFS { private let dx = [1, -1, 0, 0] private let dy = [0, 0, 1, -1] private let board..
2024.03.18
[Swift] 4179번 : 불!
https://www.acmicpc.net/problem/4179 4179번: 불! 입력의 첫째 줄에는 공백으로 구분된 두 정수 R과 C가 주어진다. 단, 1 ≤ R, C ≤ 1000 이다. R은 미로 행의 개수, C는 열의 개수이다. 다음 입력으로 R줄동안 각각의 미로 행이 주어진다. 각각의 문자 www.acmicpc.net import Foundation var demessions = readLine()! .split(separator: " ") .compactMap { Int($0) } let N = demessions.first! let M = demessions.last! let dx = [1, 0, -1, 0] let dy = [0, 1, 0, -1] var boards: [[String]] ..
2024.03.18
[Swift] 7576번 : 토마토
https://www.acmicpc.net/problem/7576 7576번: 토마토 첫 줄에는 상자의 크기를 나타내는 두 정수 M,N이 주어진다. M은 상자의 가로 칸의 수, N은 상자의 세로 칸의 수를 나타낸다. 단, 2 ≤ M,N ≤ 1,000 이다. 둘째 줄부터는 하나의 상자에 저장된 토마토 www.acmicpc.net import Foundation var demessions = readLine()! .split(separator: " ") .compactMap { Int($0) } let N = demessions.last! let M = demessions.first! print(bfs(N, M)) func bfs(_ N: Int, _ M: Int) -> Int { let dir: [(x: ..
2024.03.18
[Swift] 2667번 : 단지번호 붙이기
https://www.acmicpc.net/problem/2667 2667번: 단지번호붙이기 과 같이 정사각형 모양의 지도가 있다. 1은 집이 있는 곳을, 0은 집이 없는 곳을 나타낸다. 철수는 이 지도를 가지고 연결된 집의 모임인 단지를 정의하고, 단지에 번호를 붙이려 한다. 여 www.acmicpc.net import Foundation func solution() { let N = Int(readLine()!)! var block = 0 var result: [Int] = [] var visited: [[Bool]] = Array(repeating: Array(repeating: false, count: N), count: N) var apartmentBoard: [[Int]] = [] for _ ..
2024.03.18
[Swift] 2583번 : 영역 구하기
https://www.acmicpc.net/problem/2583 import Foundation func solution() { let inputs = readLine()! .components(separatedBy: " ") .compactMap { Int($0) } let N = inputs[1] let M = inputs[0] let K = inputs[2] var visited: [[Bool]] = Array(repeating: Array(repeating: false, count: M), count: N) var result: [Int] = [] for _ in 1...K { let inputs = readLine()! .components(separatedBy: " ") .compactMap..
2024.03.18
[Swift] 7672번 : 나이트의 이동
https://www.acmicpc.net/problem/7562 7562번: 나이트의 이동 체스판 위에 한 나이트가 놓여져 있다. 나이트가 한 번에 이동할 수 있는 칸은 아래 그림에 나와있다. 나이트가 이동하려고 하는 칸이 주어진다. 나이트는 몇 번 움직이면 이 칸으로 이동할 수 www.acmicpc.net import Foundation typealias Position = (x: Int, y: Int) func +(lhs: Position, rhs: Position) -> Position { Position(lhs.x + rhs.x, lhs.y + rhs.y) } func solution() { let repetition = Int(readLine()!)! for _ in 1...repetition..
2024.03.18
[Swift] 1012번 : 유기농 배추
https://www.acmicpc.net/problem/1012 1012번: 유기농 배추 차세대 영농인 한나는 강원도 고랭지에서 유기농 배추를 재배하기로 하였다. 농약을 쓰지 않고 배추를 재배하려면 배추를 해충으로부터 보호하는 것이 중요하기 때문에, 한나는 해충 방지에 www.acmicpc.net import Foundation var testCaseCount = Int(readLine()!)! for _ in 1...testCaseCount { solution() } func solution() { let inputs = readLine()! .components(separatedBy: " ") .compactMap { Int($0) } let N = inputs[0] let M = inputs[1]..
2024.03.18
[Swift] 1697번 : 숨바꼭질
https://www.acmicpc.net/problem/1697 1697번: 숨바꼭질 수빈이는 동생과 숨바꼭질을 하고 있다. 수빈이는 현재 점 N(0 ≤ N ≤ 100,000)에 있고, 동생은 점 K(0 ≤ K ≤ 100,000)에 있다. 수빈이는 걷거나 순간이동을 할 수 있다. 만약, 수빈이의 위치가 X일 www.acmicpc.net import Foundation var demessions = readLine()! .split(separator: " ") .compactMap { Int($0) } let NotVisited = -1 let start = demessions.first! let end = demessions.last! var array = Array(repeating: NotVisit..
2024.03.18