BFS 6

[Python] 백준 1600번 말이 되고픈 원숭이

문제https://www.acmicpc.net/problem/1600입력첫째 줄에 정수 K가 주어진다. 둘째 줄에 격자판의 가로길이 W, 세로길이 H가 주어진다. 그 다음 H줄에 걸쳐 W개의 숫자가 주어지는데, 0은 아무것도 없는 평지, 1은 장애물을 뜻한다. 장애물이 있는 곳으로는 이동할 수 없다. 시작점과 도착점은 항상 평지이다. W와 H는 1이상 200이하의 자연수이고, K는 0이상 30이하의 정수이다.출력 첫째 줄에 원숭이의 동작수의 최솟값을 출력한다. 시작점에서 도착점까지 갈 수 없는 경우엔 -1을 출력한다.입력 예제14 40 0 0 01 0 0 00 0 1 00 1 0 025 20 0 1 1 00 0 1 1 0출력 예제4-1 문제 풀이말의 움직임은 k번까지만 가능하므로 말과 원숭이의 움직임을 ..

Algorithm/BFS&DFS 2024.09.20

[Python] 백준 2146번 다리 만들기

문제https://www.acmicpc.net/problem/2146입력 첫 줄에는 지도의 크기 N(100이하의 자연수)가 주어진다. 그 다음 N줄에는 N개의 숫자가 빈칸을 사이에 두고 주어지며, 0은 바다, 1은 육지를 나타낸다. 항상 두 개 이상의 섬이 있는 데이터만 입력으로 주어진다.출력첫째 줄에 가장 짧은 다리의 길이를 출력한다.입력 예제101 1 1 0 0 0 0 1 1 11 1 1 1 0 0 0 0 1 11 0 1 1 0 0 0 0 1 10 0 1 1 1 0 0 0 0 10 0 0 1 0 0 0 0 0 10 0 0 0 0 0 0 0 0 10 0 0 0 0 0 0 0 0 00 0 0 0 1 1 0 0 0 00 0 0 0 1 1 1 0 0 00 0 0 0 0 0 0 0 0 0출력 예제3문제 풀이B..

Algorithm/BFS&DFS 2024.08.27

[Python] 프로그래머스 미로 탈출

문제 프로그래머스코드 중심의 개발자 채용. 스택 기반의 포지션 매칭. 프로그래머스의 개발자 맞춤형 프로필을 등록하고, 나와 기술 궁합이 잘 맞는 기업들을 매칭 받으세요.programmers.co.kr 문제 풀이레버까지 도달하는 데 걸리는 시간 + 레버부터 목적지까지 도달하는 데 걸리는 시간을 해야 하므로 bfs를 두 번 돌려야한다.bfs를 돌릴 때 시작지점과 도착지점이 모두 다르므로 인자로 넘겨서 큐에 넣고 탐색이후 한 개라도 도달 할 수 없는 경우가 있다면 -1, 목적지까지 도달 할 수 있다면 시간 반환코드from collections import deque# 상하좌우dy = [-1,1,0,0]dx = [0,0,-1,1]def solution(maps): # start 부터 end까지의 거..

Algorithm/BFS&DFS 2024.07.24

[Python] 백준 1240번 노드사이의 거리

문제 1240번: 노드사이의 거리 첫째 줄에 노드의 개수 $N$과 거리를 알고 싶은 노드 쌍의 개수 $M$이 입력되고 다음 $N-1$개의 줄에 트리 상에 연결된 두 점과 거리를 입력받는다. 그 다음 줄에는 거리를 알고 싶은 $M$개의 노드 쌍 www.acmicpc.net 입력 첫째 줄에 노드의 개수 N과 거리를 알고 싶은 노드 쌍의 개수 M이 입력되고 다음 N - 1개의 줄에 트리 상에 연결된 두 점과 거리를 입력받는다. 그 다음 줄에는 거리를 알고 싶은 M개의 노드 쌍이 한 줄에 한 쌍씩 입력된다. 출력 M개의 줄에 차례대로 입력받은 두 노드 사이의 거리를 출력한다. 입력 예제 4 2 2 1 2 4 3 2 1 4 3 1 2 3 2 출력 예제 2 7 문제 풀이 인접리스트로 그래프를 만든 후, 가중치 값을..

Algorithm/BFS&DFS 2023.11.01

[Java] 백준 4179번 불!

문제 4179번: 불! 입력의 첫째 줄에는 공백으로 구분된 두 정수 R과 C가 주어진다. 단, 1 ≤ R, C ≤ 1000 이다. R은 미로 행의 개수, C는 열의 개수이다. 다음 입력으로 R줄동안 각각의 미로 행이 주어진다. 각각의 문자 www.acmicpc.net 입력 입력의 첫째 줄에는 공백으로 구분된 두 정수 R과 C가 주어진다. 단, 1 ≤ R, C ≤ 1000 이다. R은 미로 행의 개수, C는 열의 개수이다. 다음 입력으로 R줄동안 각각의 미로 행이 주어진다. 각각의 문자들은 다음을 뜻한다. #: 벽 .: 지나갈 수 있는 공간 J: 지훈이의 미로에서의 초기위치 (지나갈 수 있는 공간) F: 불이 난 공간 J는 입력에서 하나만 주어진다. 출력 지훈이가 불이 도달하기 전에 미로를 탈출 할 수 없..

Algorithm/BFS&DFS 2023.11.01

[Python] 백준 2468번 안전영역

문제 2468번: 안전 영역 재난방재청에서는 많은 비가 내리는 장마철에 대비해서 다음과 같은 일을 계획하고 있다. 먼저 어떤 지역의 높이 정보를 파악한다. 그 다음에 그 지역에 많은 비가 내렸을 때 물에 잠기지 않는 www.acmicpc.net 입력 첫째 줄에는 어떤 지역을 나타내는 2차원 배열의 행과 열의 개수를 나타내는 수 N이 입력된다. N은 2 이상 100 이하의 정수이다. 둘째 줄부터 N개의 각 줄에는 2차원 배열의 첫 번째 행부터 N번째 행까지 순서대로 한 행씩 높이 정보가 입력된다. 각 줄에는 각 행의 첫 번째 열부터 N번째 열까지 N개의 높이 정보를 나타내는 자연수가 빈 칸을 사이에 두고 입력된다. 높이는 1이상 100 이하의 정수이다. 출력 첫째 줄에 장마철에 물에 잠기지 않는 안전한 영..

Algorithm/BFS&DFS 2023.04.05