백준
-
https://www.acmicpc.net/problem/3986 3986번: 좋은 단어 이번 계절학기에 심리학 개론을 수강 중인 평석이는 오늘 자정까지 보고서를 제출해야 한다. 보고서 작성이 너무 지루했던 평석이는 노트북에 엎드려서 꾸벅꾸벅 졸다가 제출 마감 1시간 전에 www.acmicpc.net import Foundation func solution() { let iterator = Int(readLine()!)! var result = 0 for _ in 1...iterator { let inputs = readLine()! var stack: [Character] = [] for char in inputs { if stack.isEmpty { stack.append(char) continue ..
[Swift] 3986번 : 좋은 단어https://www.acmicpc.net/problem/3986 3986번: 좋은 단어 이번 계절학기에 심리학 개론을 수강 중인 평석이는 오늘 자정까지 보고서를 제출해야 한다. 보고서 작성이 너무 지루했던 평석이는 노트북에 엎드려서 꾸벅꾸벅 졸다가 제출 마감 1시간 전에 www.acmicpc.net import Foundation func solution() { let iterator = Int(readLine()!)! var result = 0 for _ in 1...iterator { let inputs = readLine()! var stack: [Character] = [] for char in inputs { if stack.isEmpty { stack.append(char) continue ..
2024.03.18 -
https://www.acmicpc.net/problem/4949 4949번: 균형잡힌 세상 각 문자열은 마지막 글자를 제외하고 영문 알파벳, 공백, 소괄호("( )"), 대괄호("[ ]")로 이루어져 있으며, 온점(".")으로 끝나고, 길이는 100글자보다 작거나 같다. 입력의 종료조건으로 맨 마지막에 www.acmicpc.net import Foundation func solution() { while let inputs = readLine(), inputs != "." { var stack: [Character] = [] for char in inputs { if !["[", "]", "(", ")"].contains(char) { continue } if char == "]" && stack.la..
[Swift] 4949번 : 균형잡힌 세상https://www.acmicpc.net/problem/4949 4949번: 균형잡힌 세상 각 문자열은 마지막 글자를 제외하고 영문 알파벳, 공백, 소괄호("( )"), 대괄호("[ ]")로 이루어져 있으며, 온점(".")으로 끝나고, 길이는 100글자보다 작거나 같다. 입력의 종료조건으로 맨 마지막에 www.acmicpc.net import Foundation func solution() { while let inputs = readLine(), inputs != "." { var stack: [Character] = [] for char in inputs { if !["[", "]", "(", ")"].contains(char) { continue } if char == "]" && stack.la..
2024.03.18 -
https://www.acmicpc.net/problem/5427 5427번: 불 상근이는 빈 공간과 벽으로 이루어진 건물에 갇혀있다. 건물의 일부에는 불이 났고, 상근이는 출구를 향해 뛰고 있다. 매 초마다, 불은 동서남북 방향으로 인접한 빈 공간으로 퍼져나간다. 벽에 www.acmicpc.net import Foundation let dx = [1, -1, 0, 0] let dy = [0, 0, 1, -1] var buildingMap: [[Character]] = [] var shangunQueue: [(Int, Int)] = [] var shangunBoard: [[Int]] = [] var fireQueue: [(Int, Int)] = [] var fireBoard: [[Int]] = [] fu..
[Swift] 5427번 : 불https://www.acmicpc.net/problem/5427 5427번: 불 상근이는 빈 공간과 벽으로 이루어진 건물에 갇혀있다. 건물의 일부에는 불이 났고, 상근이는 출구를 향해 뛰고 있다. 매 초마다, 불은 동서남북 방향으로 인접한 빈 공간으로 퍼져나간다. 벽에 www.acmicpc.net import Foundation let dx = [1, -1, 0, 0] let dy = [0, 0, 1, -1] var buildingMap: [[Character]] = [] var shangunQueue: [(Int, Int)] = [] var shangunBoard: [[Int]] = [] var fireQueue: [(Int, Int)] = [] var fireBoard: [[Int]] = [] fu..
2024.03.18 -
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, _..
[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 -
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..
[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 -
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]] ..
[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 -
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: ..
[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 -
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 _ ..
[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