코딩 테스트 챌린지

[10월 코테 챌린지] 백준 1차 :: 누적 170개 / (골드5) 7569. 토마토 (브론즈2) 13458. 시험 감독

  • -
728x90
반응형

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

  1. 다리를 지나는 트럭
320x100
728x90
Contents

포스팅 주소를 복사했습니다

이 글이 도움이 되었다면 공감 부탁드립니다.