본문 바로가기
코딩테스트 파이썬/백준

마인크래프트

by 세용용용용 2024. 11. 11.

18111번: 마인크래프트

 

나의 풀이

import sys
input = sys.stdin.readline

n, m, inb = map(int, input().rstrip().split())

ct, deep = float('inf'), 0
map_list = []
for _ in range(n):
    map_list.append(list(map(int, input().rstrip().split())))

for i in range(257): # 땅 높이
    use_block = 0
    delete_block = 0
    
    for a in range(n):
        for b in range(m):
            if map_list[a][b] > i:
                delete_block += (map_list[a][b] - i)
            else:
                use_block += (i - map_list[a][b])
    if use_block > (delete_block+inb):
        continue
    
    now_ct = (delete_block*2) + use_block
    if now_ct <= ct:
        ct, deep = now_ct, i
print(f"{ct} {deep}")

 

시간 복잡도

for a in range(n) : 모든 맵을 탐색하며 블록 갯수 확인 ( 이차형 시간 복잡도 )
        for b in range(m) :
            내부 루프 : 상수 시간
해당 알고리즘 시간복잡도는 이차형 시간 복잡도 ( O(n**2) )

'코딩테스트 파이썬 > 백준' 카테고리의 다른 글

과일 탕후루  (1) 2024.11.12
좌표 압축  (0) 2024.11.11
케빈 베이컨의 6단계 법칙  (0) 2024.11.08
연결 요소의 개수  (0) 2024.11.08
최대 힙  (1) 2024.11.07