[BFS + 구현] 백준 2573번: 빙산
·
코테
https://www.acmicpc.net/problem/2573 2573번: 빙산 첫 줄에는 이차원 배열의 행의 개수와 열의 개수를 나타내는 두 정수 N과 M이 한 개의 빈칸을 사이에 두고 주어진다. N과 M은 3 이상 300 이하이다. 그 다음 N개의 줄에는 각 줄마다 배열의 각 행을 www.acmicpc.net 난이도 골드 4 사용언어 swift 카테고리 BFS + 구현 풀이과정 첫 제출 Code struct Queue { var memory = [T]() var index = 0 var isEmpty: Bool { memory.count < index + 1 } mutating func inQueue(element: T) { memory.append(element) } mutating func d..
[DFS] 백준 1707번: 이분 그래프(Swift)
·
코테
https://www.acmicpc.net/problem/1707 1707번: 이분 그래프 입력은 여러 개의 테스트 케이스로 구성되어 있는데, 첫째 줄에 테스트 케이스의 개수 K가 주어진다. 각 테스트 케이스의 첫째 줄에는 그래프의 정점의 개수 V와 간선의 개수 E가 빈 칸을 사이에 www.acmicpc.net 난이도: 골드 4 사용언어: Swift 카테코리: DFS 풀이과정 1707번 문제의 주제는 이분 그래프이다. 이분 그래프란, 위 그림과 같이 각 집합의 정점을 두 분류로 나눌 수 있는 그래프가 이분 그래프이다. 1번 예제 같은 경우, 위와 같이 표현할 수 있기 때문에, 이분 그래프라고 할 수 있다. 하지만, 2번 예제 같은 경우 2와 4가 한 분류로 묶이기 때문에 이분 그래프가 될 수 없다. 위 ..
[DFS + DP] 백준 1520번: 내리막길(Swift)
·
코테
https://www.acmicpc.net/problem/1520 1520번: 내리막 길 여행을 떠난 세준이는 지도를 하나 구하였다. 이 지도는 아래 그림과 같이 직사각형 모양이며 여러 칸으로 나뉘어져 있다. 한 칸은 한 지점을 나타내는데 각 칸에는 그 지점의 높이가 쓰여 있으 www.acmicpc.net 난이도: 골드 3 사용언어: Swift 카테코리: DFS + DP 풀이과정 문제를 보자마자 단순 DFS 문제라고 생각해서 DFS만 이용하여 탐색하였다. 하지만, 첫 제출에서 시간 초과가 발생... 시간 초과의 원인은, 문제 특성상 map에서 다른 경로이지만, 중복되는 경로가 존재할 수 있다. 가령 위 그림 처럼 50부터 32까지 두 경로가 겹친다. 이런점을 이용하여 DP(Dynamic Programmi..
[DFS] 백준 2644번: 촌수계산(Swift)
·
코테
난이도: 실버 2 사용 언어: Swift 카테고리: DFS https://www.acmicpc.net/problem/2644 2644번: 촌수계산 사람들은 1, 2, 3, …, n (1 ≤ n ≤ 100)의 연속된 번호로 각각 표시된다. 입력 파일의 첫째 줄에는 전체 사람의 수 n이 주어지고, 둘째 줄에는 촌수를 계산해야 하는 서로 다른 두 사람의 번호가 주어 www.acmicpc.net Code let n = Int(readLine()!)! let sf = readLine()!.split(separator: " ").map { Int($0)! } let start = sf[0] let finish = sf[1] let m = Int(readLine()!)! var visited = Array(repea..
[BFS] 백준: 영역 구하기(Swift)
·
코테
난이도: 실버 1 사용 언어: Swift 카테고리: BFS https://www.acmicpc.net/problem/2583 2583번: 영역 구하기 첫째 줄에 M과 N, 그리고 K가 빈칸을 사이에 두고 차례로 주어진다. M, N, K는 모두 100 이하의 자연수이다. 둘째 줄부터 K개의 줄에는 한 줄에 하나씩 직사각형의 왼쪽 아래 꼭짓점의 x, y좌표값과 오 www.acmicpc.net Code struct Queue { var memory = [T]() var index = 0 var isEmpty: Bool { memory.count < index + 1 } mutating func inQueue(element: T) { memory.append(element) } mutating func deQu..
[BFS] 백준: 안전 영역(Swift)
·
코테
난이도: 실버 1 사용 언어: Swift 카테고리: BFS https://www.acmicpc.net/problem/2468 2468번: 안전 영역 재난방재청에서는 많은 비가 내리는 장마철에 대비해서 다음과 같은 일을 계획하고 있다. 먼저 어떤 지역의 높이 정보를 파악한다. 그 다음에 그 지역에 많은 비가 내렸을 때 물에 잠기지 않는 www.acmicpc.net Code struct Queue { var memory = [T]() var index = 0 var isEmpty: Bool { memory.count T { le..