자율 주행 자동차
방향 때문에 머리가 아팠지만 특별한 부분은 없이 시키는데로 구현만 잘하면 됐던 문제였습니다. :) import sys answer = 0 n, m = map(int, sys.stdin.readline().strip().split()) y, x, d = map(int, sys.stdin.readline().strip().split()) dy, dx = [-1, 0, 1, 0], [0, 1, 0, -1] graph = [list(map(int, sys.stdin.readline().strip().split())) for _ in range(n)] visited = [[False for _ in range(m)] for _ in range(n)] check_count = 0 visited[y][x] = Tru..
방화벽 설치하기
아주 예전에 친구들과 1일 1문제 했을 때 풀었던 문제. 위치값 저장해서 방화벽 놓을 수 있는 모든 경우의 수에 불이 퍼지게 해서 최소값만 리턴하면 끝남. import sys import copy from itertools import combinations from collections import deque maxCount = 0 copyGraph = [] def bfs(x, y, n , m): global copyGraph dx, dy = [-1, 1, 0, 0], [0, 0, -1, 1] queue = deque() queue.append((x, y)) while queue: x, y = queue.popleft() for z in range(4): nx = x + dx[z] ny = y + dy..
생명과학부 랩 인턴
단순 시뮬레이션이다 보니 생각보니 오래 걸리지 않았습니다. import sys n, m, k = map(int, sys.stdin.readline().strip().split()) graph = [[ [] for _ in range(m) ] for _ in range(n) ] g_infos = [] dx, dy = [0, 0, 1, -1], [-1, 1, 0, 0] answer = 0 for _ in range(k): x, y, s, d, b = map(int, sys.stdin.readline().strip().split()) graph[x - 1][y - 1].append([s, d - 1, b]) g_infos.append([x - 1, y - 1, s, d - 1, b]) def fight_g()..
2개의 사탕
백트래킹 없이는 시간 초과가 나는 문제였습니다. 그래서 딕셔너리에 현재의 위치와 방향을 key로 그리고 움직인 횟수를 value 갱신해줬더니 풀렸습니다. 헿 import sys, copy, math from collections import deque n, m = map(int, sys.stdin.readline().strip().split()) graph = [list(sys.stdin.readline().strip()) for _ in range(n)] answer = math.inf b_y, b_x = 0, 0 r_y, r_x = 0, 0 g_y, g_x = 0, 0 dy, dx = [-1, 0, 1, 0], [0, 1, 0, -1] move_dict = {} def find_first_candy(..