2024/10/15
[Today]
백준 1차 :: 누적 170개 / (골드5) 7569. 토마토 (브론즈2) 13458. 시험 감독
[전체 코딩 테스트 문제 풀이 과정]
• 프로그래머스 :: 누적 372개 / (Lv0) 236개 (Lv1) 73개 (Lv2) 53개 (Lv3) 10개
• 백준 1차 :: 누적 170개 / (브론즈1) 13개 (브론즈2) 23개 (브론즈3) 26개 (브론즈4) 9개 (브론즈5) 37개 (실버1) 3개 (실버2) 6개 (실버3) 9개 (실버4) 19개 (실버5) 18개 (골드1) 1개 (골드5) 1개
• SW expert academy:: 누적 15개 / D1 6개 D2 9개
[ 변경 사항 ]
기존에는 제목에 풀이한 문제 사이트명과 누적 문제 풀이 수, 난이도별 문제 풀이 수를 작성했으나,
오늘 챌린지부터는 풀이한 문제 사이트명과 누적 문제 풀이 수, 문제번호/문제명를 작성하는 것으로 변경한다.
풀이한 문제
백준 골드5
7569번: 토마토 (acmicpc.net)
브론즈2
13458번: 시험 감독 (acmicpc.net)
문제 풀이
백준 골드5
7569번: 토마토 (acmicpc.net)
m,n,h = map(int,input().split())
graph = [[list(map(int,input().split())) for i in range(n)] for j in range(h)]
from collections import deque
# start = 토마토가 1
dd = deque()
for k in range(h):
for j in range(n):
for i in range(m):
if graph[k][j][i]==1:
# dd.append((k,j,i))
dd.append((i,j,k))
def bfs3(): #start=(0,0,0) #h/m/n
d = [(0,0,-1),(0,0,1),(0,-1,0),(0,1,0),(-1,0,0),(1,0,0)]
while dd:
x,y,z= dd.popleft()
# if z == h-1 and y == n-1 and x == m-1:
# return graph[z][y][x]
for dx,dy,dz in d:#dz,dy,dx in d:
zz = dz+z ; yy = dy+y ; xx = dx+x
if 0<=xx<m and 0<=yy<n and 0<=zz<h and graph[zz][yy][xx]==0:# and not visited[zz][yy][xx]:
graph[zz][yy][xx] = graph[z][y][x]+1
# visited[zz][yy][xx]=True
dd.append((xx,yy,zz))
bfs3()
# print(graph)
maxx = 0
for k in range(h):
for j in range(n):
for i in range(m):
if graph[k][j][i]==0:
print(-1)
exit(0)
maxx = max(maxx, graph[k][j][i])
if maxx>=1:
print(maxx-1)
else:
print(maxx)
브론즈2
13458번: 시험 감독 (acmicpc.net)
n = int(input()) #시험장
a = list(map(int,input().split()))
b,c = map(int,input().split())
# n = 5
# a = [1000000,1000000,1000000,1000000,1000000]
# b,c = 5,7
answer = n
a = [max(0,i-b) for i in a]
for i in range(n):
if a[i]//c != a[i]/c :
answer += (a[i]//c)+1
else:
answer += a[i]//c
print(answer)
미완성 문제
프로그래머스 Lv2
- 다리를 지나는 트럭