본문 바로가기

BFS

(20)
[백준/Swift] 2933: 미네랄 백준 2933 미네랄 2933번: 미네랄 창영과 상근은 한 동굴을 놓고 소유권을 주장하고 있다. 두 사람은 막대기를 서로에게 던지는 방법을 이용해 누구의 소유인지를 결정하기로 했다. 싸움은 동굴에서 벌어진다. 동굴에는 미네랄 www.acmicpc.net BFS 문제 입니다. 간단한 문제 요약 두 사람이 동굴(R,C크기) 양쪽에 서서 번갈아가면서 막대기를 던집니다. 맨 처음 좌 -> 우 그 다음 우-> 좌 의 반복으로 던집니다. 미네랄 "x" 에 맞을 경우 미네랄이 파괴가 되는데 분리된 클러스터(땅과 닿지 않거나, 땅과 연결된 클러스터로 부터 분리된 경우)인 경우 중력에 의해 바닥으로 떨어집니다. 떨어지는 동안 클러스터 모양은 변하지 않습니다. 고려해야 할 사항 막대기는 특정 높이를 유지하며 날라간다. 이..
[Algorithm] 그래프의 의미 및 DFS, BFS 탐색 방법 기본 개념 완전 뿌수기!!!! [Algorithm] 그래프의 탐색 DFS, BFS 탐색 그래프란 무엇인가? 그래프의 개념 그래프 표현 방법 DFS란? BFS란? DFS와 BFS 차이 그래프란 무엇인가? 일반적으로 그래프 하면 떠오르는 개념은 통계 수치를 비교할 때 사용되는 히스토그램(histogram), 방정식 같은 이미지를 떠올린다. 알고리즘에서 그래프는 어떤 현상, 사물을 정점으로 표현하고 연관된 정보를 간선을 통해 표현한다. 이 또한 그래프의 개념에 속한다. 다시 말해 정점은 주요한 대상 정보를 나타내고 간선은 정점과 정점(정보와 정보)을(를) 이어주는 관계가 된다. 즉, 데이터가 존재할 때 각 데이터를 연관 지어 시각적으로 표현한 것을 그래프라고 한다. 위 그림은 네트워크와 연관된 이미지이다. 위에서 흰색 점들은 선으로 연결되..
[백준/Swift] 12852 : 1로 만들기 2 BOJ_12852.swift 12852 : 1로 만들기 2/ 문제 소개 풀이 과정 코드 구현 https://www.acmicpc.net/problem/12852 12852번: 1로 만들기 2 첫째 줄에 1보다 크거나 같고, 106보다 작거나 같은 자연수 N이 주어진다. www.acmicpc.net 12852 : 1로 만들기 2 / 문제 소개 문제 정수 X에 사용할 수 있는 연산은 다음과 같이 세 가지 이다. X가 3으로 나누어 떨어지면, 3으로 나눈다. X가 2로 나누어 떨어지면, 2로 나눈다. 1을 뺀다. 정수 N이 주어졌을 때, 위와 같은 연산 세 개를 적절히 사용해서 1을 만들려고 한다. 연산을 사용하는 횟수의 최솟값을 출력하시오! 출력 첫째 줄에 연산을 하는 횟수의 최솟값을 출력한다. 둘째 줄에는..
[백준/Swift] 17141 : 연구소2 ... if !visited[new탐색할y좌표][new탐색할x좌표] { visited[new탐색할y좌표][new탐색할x좌표] = visited[현재 탐색중인 y좌표][현재 탐색중이x좌표] + 1 ... } BOJ_17141.swift 17141 : 연구소2/ 문제 소개 풀이 과정 코드 구현 https://www.acmicpc.net/problem/17141 17141번: 연구소 2 인체에 치명적인 바이러스를 연구하던 연구소에 승원이가 침입했고, 바이러스를 유출하려고 한다. 승원이는 연구소의 특정 위치에 바이러스 M개를 놓을 것이고, 승원이의 신호와 동시에 바이 www.acmicpc.net 17141 : 연구소2 / 문제 소개 연구소(n by n )에 벽 1, 바이러스 놓을 수 있는 칸 2, 바이러스 퍼질..
[백준/Swift] 3187 : 양치기 꿍 문제 풀이 BOJ_3187.swift 3187 : 양치기 꿍/ 문제 소개 풀이 과정 코드 구현 https://www.acmicpc.net/problem/3187 3187번: 양치기 꿍 입력의 첫 번째 줄에는 각각 영역의 세로와 가로의 길이를 나타내는 두 개의 정수 R, C (3 ≤ R, C ≤ 250)가 주어진다. 다음 각 R줄에는 C개의 문자가 주어지며 이들은 위에서 설명한 기호들이다. www.acmicpc.net 3187 : 양치기 꿍 / 문제 소개 울타리 안에 양과 늑대가 존재할 수 있다. 특정 규칙이 있다. 특정 울타리 안에서 양이 늑대보다 많을 경우 양이 늑대를 다 잡아먹어 양만 존재하게 된다. 반대로 양이 늑대의 수와 같거나 적다면 특정 울타리 안에서 늑대한테 전부 잡아먹힌다. 양과 늑대는 상 하 좌 우..
[백준/Swift] 16236 : 아기 상어 문제 뿌수기!! BOJ_16236.swift 16236 : 아기 상어/ 문제 소개 풀이 과정 코드 구현 https://www.acmicpc.net/problem/16236 16236번: 아기 상어 N×N 크기의 공간에 물고기 M마리와 아기 상어 1마리가 있다. 공간은 1×1 크기의 정사각형 칸으로 나누어져 있다. 한 칸에는 물고기가 최대 1마리 존재한다. 아기 상어와 물고기는 모두 크기를 가 www.acmicpc.net 16236 : 아기 상어 / 문제 소개 문제를 명확하게 이해해야 햇갈리지 않고 풀 수 있다.... 초기 아기상어 크기 : 2 (== 잡아먹을 수 있는 물고기는 2보다 낮은 1) 1초에 상 하 좌 우로 이동한다. 크기가 2 인 물고기는 잡아 먹을 수 없지만 이동은 가능하다. 크기가 자신보다 큰 (3이상) ..
[백준/Swift] 17086 : 아기 상어2 BOJ_17086.swift 17086 : 아기 상어2/ 문제 소개 풀이 과정 코드 구현 https://www.acmicpc.net/problem/17086 17086번: 아기 상어 2 첫째 줄에 공간의 크기 N과 M(2 ≤ N, M ≤ 50)이 주어진다. 둘째 줄부터 N개의 줄에 공간의 상태가 주어지며, 0은 빈 칸, 1은 아기 상어가 있는 칸이다. 빈 칸과 상어의 수가 각각 한 개 이상인 입력만 www.acmicpc.net 17086 : 아기 상어2 / 문제 소개 N×M 크기의 공간에 " 1 " 로 표현된 아기 상어 여럿이 존재한다. 아기 상어한테 닿지 않는 최대 안전 거리를 구하는게 이 문제이다. 풀이 과정 완전 탐색으로 맵의 모든 0인 곳에서 아기 상어가 존재 " 1 " 인 지점까지 안전거리 탐색..
[백준/Swift] 18405 : 경쟁적 전염 BOJ_18405() 18405 : 경쟁적 전염/ 문제 소개 풀이 과정 코드 구현 https://www.acmicpc.net/problem/18405 18405번: 경쟁적 전염 첫째 줄에 자연수 N, K가 공백을 기준으로 구분되어 주어진다. (1 ≤ N ≤ 200, 1 ≤ K ≤ 1,000) 둘째 줄부터 N개의 줄에 걸쳐서 시험관의 정보가 주어진다. 각 행은 N개의 원소로 구성되며, 해당 위치 www.acmicpc.net 18405 : 경쟁적 전염/ 문제 소개 이 문제는 시험관 안에 초기 바이러스들이 존재한다. 이때 바이러스는 1~K 번까지 반드시 존재한다. 이때 주의할 점이 특정 바이러스 종류가 여러 개 존재할 수 있다. 왼쪽 그림은 k = 3일때 초기 바이러스 위치이다. 1초마다 바이러스들은 상 하 ..