본문 바로가기

백준 PS일지/DFS&BFS

(34)
[백준/Swift] 1245: 농장 관리 | PS일지 문제 1245번: 농장 관리 첫째 줄에 정수 N(1 < N ≤ 100), M(1 < M ≤ 70)이 주어진다. 둘째 줄부터 N+1번째 줄까지 각 줄마다 격자의 높이를 의미하는 M개의 정수가 입력된다. 격자의 높이는 500보다 작거나 같은 음이 아닌 정수 www.acmicpc.net 간단한 문제 요약 농장에서 산봉우리마다 경비원을 배치하려고 합니다. 그래서 산봉우리의 개수를 구해야 합니다. 산봉우리란 같은 높이를 가지는 인접한 격자(x, y 좌표 차이가 1 이하인 경우)의 집합 이거나 산봉우리와 인접한 격자는 모두 산봉우리의 높이보다 작아야 합니다. 고려해야 할 사항 산봉우리의 높이 차이는 예제 입력 1에서 1씩 차이가 날 수도 있고, 더 클 수 있습니다. ex) input: 3 1 1 3 1 ans: 1..
[백준/Swift] 24445: 알고리즘 수업 - 너비 우선 탐색 2 문제 24445번: 알고리즘 수업 - 너비 우선 탐색 2 첫째 줄에 정점의 수 N (5 ≤ N ≤ 100,000), 간선의 수 M (1 ≤ M ≤ 200,000), 시작 정점 R (1 ≤ R ≤ N)이 주어진다. 다음 M개 줄에 간선 정보 u v가 주어지며 정점 u와 정점 v의 가중치 1인 양 www.acmicpc.net 간단한 문제 요약 시작 정점을 기준으로 주어진 정점을 탐색할 때 한 정점에서 갈 수 있는 여러개의 정점이 존재합니다. 이때 내림차순으로(큰 번호부터) 탐색을 이어나갑니다. 문제 풀이, 느낀점 var graph = Array(repeating: [Int](), count: n) _=(0..)} 또한 내림차순으로 탐색하기 위해서 문제에서 입력받은 노드의 크기를 내림차순으로 소팅해주면 됩니..
[백준/Swift] 6087 : 레이저 통신 보호되어 있는 글입니다.
[백준/Swift] 2933: 미네랄 백준 2933 미네랄 2933번: 미네랄 창영과 상근은 한 동굴을 놓고 소유권을 주장하고 있다. 두 사람은 막대기를 서로에게 던지는 방법을 이용해 누구의 소유인지를 결정하기로 했다. 싸움은 동굴에서 벌어진다. 동굴에는 미네랄 www.acmicpc.net BFS 문제 입니다. 간단한 문제 요약 두 사람이 동굴(R,C크기) 양쪽에 서서 번갈아가면서 막대기를 던집니다. 맨 처음 좌 -> 우 그 다음 우-> 좌 의 반복으로 던집니다. 미네랄 "x" 에 맞을 경우 미네랄이 파괴가 되는데 분리된 클러스터(땅과 닿지 않거나, 땅과 연결된 클러스터로 부터 분리된 경우)인 경우 중력에 의해 바닥으로 떨어집니다. 떨어지는 동안 클러스터 모양은 변하지 않습니다. 고려해야 할 사항 막대기는 특정 높이를 유지하며 날라간다. 이..
[백준/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] 2638 : 치즈. 거북이 같은 내 코드 개선시키기... BOJ_2638.swift 2638 : 치즈/ 문제 소개 풀이 과정 초기 코드 부터 개선된 코드까지! 코드 구현 https://www.acmicpc.net/problem/2638 2638번: 치즈 첫째 줄에는 모눈종이의 크기를 나타내는 두 개의 정수 N, M (5 ≤ N, M ≤ 100)이 주어진다. 그 다음 N개의 줄에는 모눈종이 위의 격자에 치즈가 있는 부분은 1로 표시되고, 치즈가 없는 부분은 0으로 www.acmicpc.net 2638 : 치즈 / 문제 소개 N(세로)*M(가로)의 모눈 종이 위에 치즈가 있다!! 모눈종이 edge부분에는 치즈가 존재하지 않는다. 치즈가 녹는데 조건이 있다. 외부의 공기(흰색 칸들)로부터 치즈 특정 칸이 외부 공기(흰색 공간) 2칸 이상 닿으면 해당 치즈는 1시간..
[백준/Swift] 1726 : 로봇 BOJ_1726.swift 1726 : 로봇/ 문제 소개 풀이 과정 코드 구현 https://www.acmicpc.net/problem/1726 1726번: 로봇 많은 공장에서 로봇이 이용되고 있다. 우리 월드 공장의 로봇은 바라보는 방향으로 궤도를 따라 움직이며, 움직이는 방향은 동, 서, 남, 북 가운데 하나이다. 로봇의 이동을 제어하는 명령어는 www.acmicpc.net 1726 : 로봇 / 문제 소개 로봇은 바라보는 방향으로 움직인다. 바라보는 방향은 동 서 남 북 가운데 하나이다. 로봇의 이동에는 제약조건이 있다. 명령 1 : GO K : k 는 1,2,3일 수 있다. 현재 바라보는 방향(로봇의 시선)에서 k칸 움직임 명령 2 :Turn dir : 움직이는 방향은 왼쪽, 오른쪽으로 90도 회전..