Algorithm/Graph188 [파이썬] 백준 16946 : 벽 부수고 이동하기 4 (골드2) [파이썬] 백준 16946 : 벽 부수고 이동하기 4 (골드2) 16946번: 벽 부수고 이동하기 4 N×M의 행렬로 표현되는 맵이 있다. 맵에서 0은 이동할 수 있는 곳을 나타내고, 1은 이동할 수 없는 벽이 있는 곳을 나타낸다. 한 칸에서 다른 칸으로 이동하려면, 두 칸이 인접해야 한다. 두 칸이 www.acmicpc.net 문제 풀이 0. 방향성 생각 DFS로 0으로 연결된 군집 사이즈 구하기. 1을 0으로 바꿨을 때 주변에 연결된 군집 크기와 더해주기. 상하좌우에서 4방향 탐색 시 같은 군집을 여러번 셀 수 있으니 중복처리 해주기. 1. 입력 import sys sys.setrecursionlimit(10**6) input = lambda : sys.stdin.readline().rstrip() .. 2023. 8. 22. [파이썬] 프로그래머스 : 빛의 경로 사이클 (Lv.2) [파이썬] 프로그래머스 : 빛의 경로 사이클 (Lv.2) 프로그래머스 코드 중심의 개발자 채용. 스택 기반의 포지션 매칭. 프로그래머스의 개발자 맞춤형 프로필을 등록하고, 나와 기술 궁합이 잘 맞는 기업들을 매칭 받으세요. programmers.co.kr 풀이 방향성 생각 학부연구생 민상처럼 한 방향에 좌표마다 4가지 방향을 visit으로 처리한다. DFS로 탐색. 사이클 재방문하면 탈출, 아니면 재귀 한 좌표에 같은 방향으로 입력이 들어오면 사이클 발생(재방문)이므로 탈출한다. 전체코드 import sys sys.setrecursionlimit(10**8) def solution(grid): h,w = len(grid),len(grid[0]) visit = [[[False]*4 for _ in rang.. 2023. 8. 18. [파이썬] 백준 1005 : ACM Craft (골드3) [파이썬] 백준 1005 : ACM Craft (골드3) 1005번: ACM Craft 첫째 줄에는 테스트케이스의 개수 T가 주어진다. 각 테스트 케이스는 다음과 같이 주어진다. 첫째 줄에 건물의 개수 N과 건물간의 건설순서 규칙의 총 개수 K이 주어진다. (건물의 번호는 1번부 www.acmicpc.net 문제 풀이 0. 방향성 생각 하위 노드에서 상위 노드로 방문을 한다. 상위 노드에서는 하위 노드에서 오는 방문을 모두 False로 초기화 한 후 방문할 때 마다 True로 변환. 상위 노드의 방문처리가 모두 True로 바뀌면 방문 시 cost 중 가장 큰 값을 선택하고 큐에 추가한다. 1. 입력 from collections import deque import sys input = lambda : s.. 2023. 8. 18. [파이썬] 백준 21922: 학부 연구생 민상 (골드5) [파이썬] 백준 21922: 학부 연구생 민상 (골드5) 21922번: 학부 연구생 민상 첫 번째 줄에는 연구실의 크기가 세로 $N(1 \le N \le 2,000)$, 가로 $M(1 \le M \le 2,000)$ 순으로 주어진다. 두 번째 줄부터 $N + 1$ 줄까지 연구실 내부 구조 정보를 알려주는 값 $M$개가 주어진다. $1,2,3,4$ www.acmicpc.net 문제 풀이 0. 방향성 생각 큐에 좌표, 진행방향을 넣고 BFS 돌려준다 만나는 구조물마다 방문처리, 방향처리 해주기. visit은 특정 좌표에서 상하좌우 4방향을 정의하고 한 방향이라도 에어컨이 들어오면 any를 써서 카운트 해주기. 1. 입력 from collections import deque import sys input = .. 2023. 8. 18. 이전 1 ··· 35 36 37 38 39 40 41 ··· 47 다음