2022(112)
-
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 -
14888 - 연산자 끼워넣기
def dfs(idx, curNum): global max_value, min_value, N, num, add, sub, mul, div, temp if idx == N-1: max_value = max(max_value, curNum) min_value = min(min_value, curNum) else: idx += 1 if add>0: add -= 1 dfs(idx, curNum+num[idx]) add += 1 if sub>0: sub -= 1 dfs(idx, curNum-num[idx]) sub += 1 if mul>0: mul -= 1 dfs(idx, curNum*num[idx]) mul += 1 if div>0: div -= 1 nxtNum = num[idx] if curNum < 0: ..
2022.05.03 -
14503 - 로봇청소기*
# idx = 0 : 서쪽 방향 기준 왼쪽은 남쪽으로 이동 # idx = 1 : 남쪽 방향 기준 왼쪽은 동쪽으로 이동 # idx = 2 : 동쪽 방향 기준 왼쪽은 북쪽으로 이동 # idx = 3 : 북쪽 방향 기준 왼쪽은 서쪽으로 이동 dx = [-1, 0, 1, 0] dy = [0, 1, 0, -1] N, M = map(int, input().split()) graph = [] x, y, d = map(int, input().split()) for i in range(N): graph.append(list(map(int, input().split()))) # 처음 청소기가 있는 위치는 청소 완료로 초기화 endClean = 1; graph[x][y] = 2 def dfs(x, y, d): global ..
2022.05.03