일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
1 | 2 | 3 | 4 | 5 | 6 | 7 |
8 | 9 | 10 | 11 | 12 | 13 | 14 |
15 | 16 | 17 | 18 | 19 | 20 | 21 |
22 | 23 | 24 | 25 | 26 | 27 | 28 |
29 | 30 | 31 |
- CSS
- 블록체인
- es6
- 이슈
- 백엔드
- 솔리디티
- AWS
- JavaScript
- 알고리즘
- VUE
- 쿠버네티스
- 가상화
- TypeScript
- 프론트엔드
- 파이썬
- 컴퓨터공학
- 웹
- k8s
- BFS
- react
- 백준
- 리액트
- 이더리움
- 타입스크립트
- HTML
- 자바스크립트
- kubernetes
- next.js
- docker
- 클라우드
- Today
- Total
목록📖 BFS (9)
즐겁게, 코드
[백준 온라인 저지 링크] 16469번: 소년 점프 첫째 줄에 미로의 행과 열의 크기를 나타내는 자연수 R과 C가 주어진다. (2 ≤ R, C ≤ 100) 다음 R줄에 걸 쳐 길이 C로 이루어진 각 줄의 미로의 정보가 공백 없이 주어진다. 숫자 0은 이동 가능한 www.acmicpc.net BFS에 약간의 잡기술을 얹은 문제입니다. 풀이가 복잡하지는 않은데, 이걸 설명하려 하니 뭔가 복잡해질 것 같아 적당히 "이렇게 푼 사람도 있구나" 하시고 봐주셔도 될 것 같습니다. [정답 코드 - Python] import sys from collections import deque input = sys.stdin.readline R, C = map(int, input().split()) visitedA = [[-1..
[백준 온라인 저지 링크] 10026번: 적록색약 적록색약은 빨간색과 초록색의 차이를 거의 느끼지 못한다. 따라서, 적록색약인 사람이 보는 그림은 아닌 사람이 보는 그림과는 좀 다를 수 있다. 크기가 N×N인 그리드의 각 칸에 R(빨강), G(초록) www.acmicpc.net 아, 이 문제는 다른 탐색 문제들보다 조금 더 특별합니다. 바로 제 손으로 처음 푼 골드 문제인데요, 정말 상쾌하네요! 🤣 [정답 코드 - Python] from collections import deque N = int(input()) board = [] visited = [[False] * N for _ in range(N)] dy = [-1, 0, 1, 0] dx = [0, 1, 0, -1] countNormal = 0 co..
[백준 온라인 저지 링크] 4963번: 섬의 개수 입력은 여러 개의 테스트 케이스로 이루어져 있다. 각 테스트 케이스의 첫째 줄에는 지도의 너비 w와 높이 h가 주어진다. w와 h는 50보다 작거나 같은 양의 정수이다. 둘째 줄부터 h개 줄에는 지도 www.acmicpc.net 특별한 점은 없는 탐색 문제입니다! 다만, 섬을 사방이 아니라 대각선까지 탐색해야 한다는 점에만 유의하세요! [정답 코드 - Python] from collections import deque dy = [-1, 0, 1, 0, -1, 1, 1, -1] dx = [0, 1, 0, -1, 1, 1, -1, -1] def BFS(node): q = deque() q.append(node) global visited visited[nod..
[백준 온라인 저지 링크] 17086번: 아기 상어 2 첫째 줄에 공간의 크기 N과 M(2 ≤ N, M ≤ 50)이 주어진다. 둘째 줄부터 N개의 줄에 공간의 상태가 주어지며, 0은 빈 칸, 1은 아기 상어가 있는 칸이다. 빈 칸의 개수가 한 개 이상인 입력만 주어진다. www.acmicpc.net [정답 코드 - Python] from collections import deque N, M = map(int, input().split()) max_cnt = 0 queue = deque() board = [] dy = [-1, -1, 0, 1, 1, 1, 0, -1] dx = [0, 1, 1, 1, 0, -1, -1, -1] for i in range(N): board.append(list(map(int,..
[백준 온라인 저지 링크] 2583번: 영역 구하기 첫째 줄에 M과 N, 그리고 K가 빈칸을 사이에 두고 차례로 주어진다. M, N, K는 모두 100 이하의 자연수이다. 둘째 줄부터 K개의 줄에는 한 줄에 하나씩 직사각형의 왼쪽 아래 꼭짓점의 x, y좌표값과 오 www.acmicpc.net 입력이 약간 마음에 들지 않는 문제였습니다! 첫째 줄에서 M, N을 입력받아 무의식적으로 M = 행, N = 열인줄 알았지만, 실제 풀이에서는 N = 행, M = 열로 바꿔 풀어야 했네요 ㅡㅡ! 이외에는 2667번 단지번호붙이기, 1012번 유기농 배추 등의 문제와 동일한 방법으로 해결할 수 있는 문제였습니다. [정답 코드 - Python] from collections import deque M, N, K = ma..
[백준 온라인 저지 링크] 7576번: 토마토 첫 줄에는 상자의 크기를 나타내는 두 정수 M,N이 주어진다. M은 상자의 가로 칸의 수, N은 상자의 세로 칸의 수를 나타낸다. 단, 2 ≤ M,N ≤ 1,000 이다. 둘째 줄부터는 하나의 상자에 저장된 토마토 www.acmicpc.net 2178번 미로 탐색과 비슷하게 BFS 탐색을 최소화하는 경로를 찾아야 했습니다. 다만 가장 머리아팠던게 바로 세 번째 케이스로, 출발지점이 둘 이상일 경우에는 아래처럼 토마토를 발견할 때 탐색을 시작하도록 하면 절대 최솟값을 찾을 수 없습니다. for row in range(N): for col in range(M): if tomatoes[row][col] == 1 and visited[row][col] == Fals..
[백준 온라인 저지 링크] 2468번: 안전 영역 재난방재청에서는 많은 비가 내리는 장마철에 대비해서 다음과 같은 일을 계획하고 있다. 먼저 어떤 지역의 높이 정보를 파악한다. 그 다음에 그 지역에 많은 비가 내렸을 때 물에 잠기지 않는 www.acmicpc.net 다른 분들 코드를 보니 한번의 탐색만으로 답을 구하는 분들이 많았는데, 저는 두 번의 탐색을 활용하는 코드를 작성했습니다. 테스트케이스로 주어진 배열과 함께 빗물의 높이가 3인 경우를 예로 들겠습니다. 첫 번째 BFS 탐색에서는 원본 배열을 탐색해 안전 여부를 판단하는 배열을 만들어냅니다. 두 번째 BFS 탐색에서는 이렇게 만들어진 안전 영역의 수를 세 줍니다. 다만 한 가지 조심할 점은 "비가 오지 않는 경우 (= 높이가 0일때)" 가 마지..