Algorithm/Problem Solving 155

[백준/BOJ] 21610 - 마법사 상어와 비바라기

21610 - 마법사 상어와 비바라기 📝문제 👨‍💻코드 n, m = map(int, input().split()) graph = [] arr1 = [] for i in range(n): graph.append(list(map(int, input().split()))) for i in range(m): arr1.append(list(map(int, input().split()))) arr = [[0, -1], [-1, -1], [-1, 0], [-1, 1], [0, 1], [1, 1], [1, 0], [1, -1]] visited = [] for i in range(n): visited.append([0] * n) visited[n - 1][0] = 1 visited[n - 1][1] = 1 visited..

[백준/BOJ] 20055 - 컨베이어 벨트 위의 로봇

20055 - 컨베이어 벨트 위의 로봇 📝문제 👨‍💻코드 from collections import deque n, k = map(int, input().split()) belt = list(map(int, input().split())) belt = deque(belt) def solution(belt): answer = 0 robot = deque([0] * n) while True: answer += 1 cnt = 0 a = belt.pop() belt.appendleft(a) robot.pop() robot.appendleft(0) if robot[-1] == 1: robot.pop() robot.append(0) for i in range(n - 2, -1, -1): if robot[i] == ..

[백준/BOJ] 14888 - 연산자 끼워넣기

14888 - 연산자 끼워넣기 📝문제 👨‍💻코드 n = int(input()) graph = list(map(int, input().split())) m = list(map(int, input().split())) k = [] maxValue = -1000000000 minValue = 1000000000 for i in range(len(m)): for j in range(m[i]): k.append(i + 1) visited = [0] * len(k) arr = [] def solution(): dfs(0) def dfs(a): global maxValue global minValue if len(arr) == len(graph) - 1: temp = graph[0] for i in range(len..

[백준/BOJ] 15654 - N과 M(5)

15654 - N과 M(5) 📝문제 👨‍💻코드 n, m = map(int, input().split()) arr = [] temp = list(map(int, input().split())) temp.sort() visited = [0] * n def dfs(i): if len(arr) == m: print(*arr) return for i in range(len(temp)): if visited[i] == 0: arr.append(temp[i]) visited[i] = 1 dfs(i + 1) arr.pop() visited[i] = 0 dfs(0) 🤔Review 백트래킹 문제를 연습할 때 최고의 문제인 것 같다. 계속 연습해보면서 백트래킹에 익숙해져야겠다.