전체 글
레이저 통신 풀이
문제 링크: https://www.acmicpc.net/problem/6087 백준 알고리즘 중급 1/3 611에서 13번째 - 6087번 레이저 통신을 풀어보았다. 풀이: https://velog.io/@ckstn0778/%EB%B0%B1%EC%A4%80-6087%EB%B2%88-%EB%A0%88%EC%9D%B4%EC%A0%80-%ED%86%B5%EC%8B%A0-1-Python C++ Python from collections import deque import sys input = sys.stdin.readline INF = int(1e9) # 서-북-동-남 dx = [0, -1, 0, 1] dy = [-1, 0, 1, 0] def bfs(sx, sy, ex, ey): q = deque() visit..
아기 상어 풀이
문제 링크: https://www.acmicpc.net/problem/16236 백준 알고리즘 중급 1/3 611에서 12번째 - 16236번 아기 상어를 풀어보았다. 풀이: https://velog.io/@waoderboy/%EC%95%8C%EA%B3%A0%EB%A6%AC%EC%A6%98-%EB%B0%B1%EC%A4%80-16236-%EC%95%84%EA%B8%B0%EC%83%81%EC%96%B4-%ED%8C%8C%EC%9D%B4%EC%8D%AC C++ Python from collections import deque N = int(input()) space = [list(map(int, input().split())) for _ in range(N)] dx, dy = [-1, 0, 1, 0], [0,..
탈출 풀이
문제 링크: https://www.acmicpc.net/problem/3055 백준 알고리즘 중급 1/3 611에서 11번째 - 3055번 탈출을 풀어보았다. 풀이: https://wookcode.tistory.com/167 C++ Python import collections import sys input = sys.stdin.readline n, m = map(int, input().split()) graph = [list(input().strip()) for _ in range(n)] distance = [[0] *m for _ in range(n)] dx, dy = [-1, 1, 0, 0], [0, 0, -1, 1] queue = collections.deque() def bfs(Dx,Dy): w..
움직이는 미로 탈출 풀이
문제 링크: https://www.acmicpc.net/problem/16954 백준 알고리즘 중급 1/3 611에서 10번째 - 16954번 움직이는 미로 탈출을 풀어보았다. 풀이: https://ku-hug.tistory.com/151 C++ Python import sys from collections import deque input = sys.stdin.readline n = 8 graph = [list(input().strip()) for _ in range(n)] visited = [[False] * n for _ in range(n)] dx = [0, 0, 1, -1, 1, -1, 1, -1, 0] dy = [1, -1, 0, 0, 1, 1, -1, -1, 0] q = deque() q.a..
벽 부수고 이동하기 4 풀이
문제 링크: https://www.acmicpc.net/problem/16946 백준 알고리즘 중급 1/3 611에서 7번째 - 16946번 벽 부수고 이동하기 4를 풀어보았다. 풀이: https://ku-hug.tistory.com/153 C++ Python from collections import deque def bfs(start): q = deque() q.append(start) cnt = 1 while q: i, j = q.popleft() zeros[i][j] = group for idx in range(4): ni, nj = i + dy[idx], j + dx[idx] if ni = n or nj = m or visited[ni][nj] or gra..
벽 부수고 이동하기 풀이
문제 링크: https://www.acmicpc.net/problem/2206 백준 알고리즘 중급 1/3 611에서 6번째 - 2206번 벽 부수고 이동하기를 풀어보았다. 풀이: https://hongcoding.tistory.com/18 C++ Python from collections import deque n, m = map(int, input().split()) graph = [] # 3차원 행렬을 통해 벽의 파괴를 파악함. visited[x][y][0]은 벽 파괴 가능. [x][y][1]은 불가능. visited = [[[0] * 2 for _ in range(m)] for _ in range(n)] visited[0][0][0] = 1 for i in range(n): graph.append(..
돌 그룹 풀이
문제 링크: https://www.acmicpc.net/problem/12886 백준 알고리즘 중급 1/3 611에서 5번째 - 12886번 돌 그룹을 풀어보았다. 풀이: https://rebas.kr/778 C++ Python from collections import deque def bfs(): q = deque() q.append((A, B)) check[A][B] = True while q: x, y = q.popleft() z = D-x-y if x == y == z: print(1) return for a, b in (x, y), (x, z), (y, z): if a b: a -= b b += b else: continue c = D-a-b ..
연구소 풀이
문제 링크: https://www.acmicpc.net/problem/14502 백준 알고리즘 중급 1/3 611에서 4번째 - 14502번 연구소를 풀어보았다. 풀이: https://heytech.tistory.com/368 C++ Python import sys; input = sys.stdin.readline import copy from itertools import combinations def solve(): global answer # 새롭게 세울 벽 3개의 모든 조합 얻기 for wall_combi in combinations(empty, wall_num): # 기존 맵 정보 깊은 복사(Deep Copy) board_new = copy.deepcopy(board) for x_w, y_w i..