분류 전체보기(219)
-
20057 - 마법사 상어와 토네이도
import math def ratioList(x, y, idx): #서 if idx == 0: ratioList = [[[x, y-2], 0.05], [[x+1, y-1], 0.1], [[x-1, y-1], 0.1], [[x+1, y], 0.07], [[x-1, y], 0.07], [[x+1, y+1], 0.01], [[x-1, y+1], 0.01], [[x+2, y], 0.02], [[x-2, y], 0.02]] #남 elif idx == 1: ratioList = [[[x+2, y], 0.05], [[x+1, y+1], 0.1], [[x+1, y-1], 0.1], [[x, y+1], 0.07], [[x, y-1], 0.07], [[x-1, y+1], 0.01], [[x-1, y-1], 0.01], ..
2022.05.03 -
17822 - 원판 돌리기
N, M, T = map(int, input().split()) graph = []; xdk = [] for _ in range(N): graph.append(list(map(int, input().split()))) for _ in range(T): xdk.append(list(map(int, input().split()))) result = 0; for n in range(T): x = xdk[n][0]; d = xdk[n][1]; k = xdk[n][2] # k번 회전 for i in range(N): if (i+1)%x == 0: if d == 0: for _ in range(k): graph[i].insert(0, graph[i].pop(-1)) elif d == 1: for _ in range..
2022.05.03 -
17144 - 미세먼지 안녕!
# 1. 미세먼지 확산 # 네방향으로 확산, 인접한 방향에 공기청정기가 있거나, 칸이 없으면 확산이 일어나지 않음 # 확산되는 양은 1/5(소수점 버림) # 확산되고 남은 미세먼지 양은 A확산되고 남은 양 import copy def spreadDust(graph): cntList = [[0]*C for _ in range(R)] addDustList = [[0]*C for _ in range(R)] for r in range(R): for c in range(C): cnt = 0 dust = int(graph[r][c]//5) if [r, c] not in cleanMac: for i in range(4): nx = r + dx[i] ny = c + dy[i] if 0
2022.05.03 -
16236 - 아기상어*
# 가장 가까운 거리에 있는 물고기부터 순차적으로 탐색하면서 상어와 물고기와의 거리 찾음(먹을 수 있는 물고기만) from collections import deque def bfs(x, y): q = deque([[x, y]]) visited = [[False]*N for _ in range(N)] visited[x][y] = True distance = [[0]*N for _ in range(N)] locAndDistance = [] while q: sx, sy = q.popleft() for i in range(4): nx = sx+dx[i] ny = sy+dy[i] if 0
2022.05.03 -
14890 - 경사로*
def abilityDiff(visited): global min_diff link, start = 0, 0 # i 와 j를 모두 돌면서 ij와 ji 능력치의 모든 합을 구핳 수 있음 for i in range(N): for j in range(i, N): if visited[i] and visited[j]: start += (graph[i][j]+graph[j][i]) elif not visited[i] and not visited[j]: link += (graph[i][j]+graph[j][i]) min_diff = min(min_diff, abs(start-link)) return min_diff # 회귀함수 사용 여부의 기준은 N/2명이 link, start에 배정이 되었는지 # link와 sta..
2022.05.03 -
14889 - 스타트와 링크*
def abilityDiff(visited): global min_diff link, start = 0, 0 # i 와 j를 모두 돌면서 ij와 ji 능력치의 모든 합을 구핳 수 있음 for i in range(N): for j in range(i, N): if visited[i] and visited[j]: start += (graph[i][j]+graph[j][i]) elif not visited[i] and not visited[j]: link += (graph[i][j]+graph[j][i]) min_diff = min(min_diff, abs(start-link)) return min_diff # 회귀함수 사용 여부의 기준은 N/2명이 link, start에 배정이 되었는지 # link와 sta..
2022.05.03