코테용 문제풀이/백준
탈출 풀이
문제 링크: 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..
DSLR 풀이
문제 링크: https://www.acmicpc.net/problem/9019 백준 알고리즘 중급 1/3 611에서 3번째 - 9019번 DSLR를 풀어보았다. 풀이: https://www.acmicpc.net/source/55553010 C++ Python import sys from collections import deque input = sys.stdin.readline commands = ['D', 'S', 'L', 'R', 'D'] for _ in range(int(input())): answer = '' dp = [-1] * 10000 dpR = [-1] * 10000 a, b = map(int, input().rstrip().split(' ')) dp[a] = '' dpR[b] = '' q..
데스 나이트 풀이
문제 링크: https://www.acmicpc.net/problem/16948 백준 알고리즘 중급 1/3 611에서 2번째 - 16948번 데스 나이트를 풀어보았다. 풀이: https://honggom.tistory.com/m/144 C++ Python from collections import deque def bfs(y, x): q = deque() q.append((y, x)) graph[y][x] = 0 while q: y, x = q.popleft() for dy, dx in d: ny, nx = y+dy, x+dx if 0
뱀과 사다리 게임 풀이
문제 링크: https://www.acmicpc.net/problem/16928 백준 알고리즘 중급 1/3 611에서 1번째 - 16928번 뱀과 사다리 게임을 풀어보았다. 풀이: https://yunaaaas.tistory.com/84 C++ Python from collections import deque def bfs(): queue = deque([1]) visited[1] = True while queue: now = queue.popleft() for move in range(1,7): check_move = now+move if 0 < check_move
2048 (Easy) 풀이
문제 링크: https://www.acmicpc.net/problem/12100 백준 알고리즘 중급 1/3 541에서 4번째 - 12100번 2048 (Easy)를 풀어보았다. 풀이: https://hongcoding.tistory.com/126 C++ Python from copy import deepcopy n = int(input()) graph = [] for i in range(n): graph.append(list(map(int, input().split()))) def move(board, dir): if dir == 0: # 동쪽 for i in range(n): top = n - 1 for j in range(n - 2, -1, -1): if board[i][j]: tmp = board[..