2468. 안전 영역
탐색만 하면 되니까 dfs bfs 모두 가능하다. 높이 보다 높으면 탐색 시작 점이 될 수 있고 그 시작점에서 그래프 탐색을 시작한다. JavaScript bfs const fs = require("fs") const input = fs.readFileSync("./dev/stdin").toString().trim().split("\n") const n = +input[0] const board = input.slice(1).map((e) => e.split(" ").map((e) => +e)) const max = Math.max(...board.flat()) let dx = [0, 0, 1, -1], dy = [1, -1, 0, 0] function bfs(x, y, h, visited) { cons..
14500. 테트로미노
최근 코딩테스트에서 이 테트로미노와 비슷한 문제를 접했다. 백준에서 문제를 찾아보니 비슷한 문제들이 몇개 있어서 풀어보자! 탐색을 한다고 했을 때 처음 블록을 깊이 1 두번째 블록을 깊이 2라고해보자. 깊이 2에서는 탐색 방법 살짝 다르다. ㅗ 모양 같은 경우는 탐색하려면 아래와 같이 해야한다. 그냥 무작정 전진해버리면 ㅗ 모양은 탐색할 수 없다. N,M = map(int,input().split()) board = [list(map(int,input().split())) for _ in range(N)] ans = 0 dx,dy = [0,1,0,-1],[1,0,-1,0] visited = [[0]*M for _ in range(N)] max_value = max(map(max,board)) def df..
2638. 치즈
치즈가 먹고싶다. bfs문제이다. 그래프 탐색문제는 뭔가 코테에서 만나면 아직 어렵게 느껴진다. 다 연습이 부족해서겠지. 이 문제는 바깥 공간과 접촉한 치즈만 녹는다. 이게 힌트이다. 그냥 무지성 bfs (0,0)에서 해주고, 그에 따라서 외부와 접촉한 치즈 (1 ) 을 1씩 증가시킨다. (접촉할 때마다) 즉 3이상이면 2번이상 접촉한거고 다음 반복에서 삭제하면 된다. import sys from collections import deque input = sys.stdin.readline n,m=map(int,input().split()) board = [list(map(int,input().split())) for _ in range(n)] dx,dy=[0,0,1,-1],[1,-1,0,0] ans = ..