[구현 + 시뮬레이션] 백준 2578번: 빙고
·
코테
https://www.acmicpc.net/problem/2578 2578번: 빙고 첫째 줄부터 다섯째 줄까지 빙고판에 쓰여진 수가 가장 위 가로줄부터 차례대로 한 줄에 다섯 개씩 빈 칸을 사이에 두고 주어진다. 여섯째 줄부터 열째 줄까지 사회자가 부르는 수가 차례대로 www.acmicpc.net 난이도 실버 4 사용언어 Swift 카테고리 구현 + 시뮬레이션 풀이과정 이중 Int 배열의 빙고판을 만들고, 행, 열, 왼쪽 대각, 오른쪽 대각의 주어진 수를 카운팅 할 수 있는 변수를 만들어 준다. 입력된 수를 빙고판을 통해 좌표를 얻고, 해당 좌표를 통해 행과 열의 변수에 카운팅 한다. 만약, 좌표의 x, y 값이 같거나 둘의 합이 4인 경우 대각의 위치한 수이기 때문에 대각 변수에 추가로 카운팅 한다. ..
[DFS] 백준 9466번: 텀 프로젝트(Swift)
·
코테
https://www.acmicpc.net/problem/9466 9466번: 텀 프로젝트 이번 가을학기에 '문제 해결' 강의를 신청한 학생들은 텀 프로젝트를 수행해야 한다. 프로젝트 팀원 수에는 제한이 없다. 심지어 모든 학생들이 동일한 팀의 팀원인 경우와 같이 한 팀만 있을 www.acmicpc.net 난이도 골드 3 사용언어 Swfit 카테고리 DFS 풀이과정 텀 프로젝트 문제는 원형 트리가 생기면 그 노드끼리 팀이 형성되고, 최종적으로 팀에 속하지 못한 노드의 수를 구하는 문제이다. 문제의 핵심은 사이클이 형성된 노드의 개수를 구하는 것이다. (사이클이 형성됐다. == 특정 노드가 2번 탐색되었다.) 때문에 visited 배열 변수를 두어 탐색이 된 노드인지 아닌지 판별한다. 탐색되지 않은 노드이..
[DFS] 백준 1068번: 트리(Swift)
·
코테
https://www.acmicpc.net/problem/1068 1068번: 트리 첫째 줄에 트리의 노드의 개수 N이 주어진다. N은 50보다 작거나 같은 자연수이다. 둘째 줄에는 0번 노드부터 N-1번 노드까지, 각 노드의 부모가 주어진다. 만약 부모가 없다면 (루트) -1이 주어진다 www.acmicpc.net 난이도 골드 5 사용언어 Swfit 카테고리 DFS 풀이과정 해당 문제는 트리의 Node중 하나가 지워졌을 때 마지막 노드(리프 노드)를 탐색하는 문제이다. 때문에 childNode로 해당 노드의 자식 노드를 배열에 저장해 탐색한다. 하지만, 탐색전 입력받은 노드를 제거 후 탐색해야 하기 때문에 target(삭제할 노드)를 통해 parentNode를 검색하고, 해당 값으로 childNode ..
[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..