[Python] BOJ 18111번. 마인크래프트

18111번. 마인크래프트

문제 링크

풀이 코드

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
# 18111번. 마인크래프트

# pypy로 해야 시간 초과 안 남
import sys
input = sys.stdin.readline

n, m, b = map(int, input().split())
bList = [[0] for i in range(n)]

mintime = 1e9
maxblock = -1

for i in range(n):
    bList[i] = list(map(int, input().split()))

for i in range(min(map(min, bList)), max(map(max, bList))+1):
    time = 0
    block = b
    for x in range(n):
        for y in range(m):
            h = bList[x][y]-i
            if h > 0:  # 블록을 인벤토리에 넣을 때
                block += h
                time = time+h*2
            elif h < 0:  # 인벤토리에서 블록을 꺼낼 때
                block += h
                time = time-h
    if block >= 0:
        if mintime >= time:
            mintime = time
            maxblock = i

print(mintime, maxblock)

비고