-
18111. 마인크래프트 (브루투포스) -다시 풀어보기코테 준비/완전탐색 2022. 12. 9. 23:40
import sys n,m,b=map(int,sys.stdin.readline().split()) #b:인벤토리에 있는 개수 craft=[list(map(int,sys.stdin.readline().split())) for _ in range(n)] ans=sys.maxsize height=0 for g in range(257): #땅의 높이는 256 이하 plus=0 # 놓는 블록의 수 minus=0 # 인벤토리에 넣는 블록의 수 for i in range(n): for j in range(m): if craft[i][j]>=g: minus+=craft[i][j]-g else: plus+=g-craft[i][j] if plus<=minus+b: #꺼내는 블록의 수가 (인벤토리+인벤토리에 넣는 블록의 수)보다 작을 때 time=plus+(minus*2) if time<=ans: ans=time height=g print(ans,height)
python3로는 시간초과 때문에 도저히 풀리지 않아서 pypy3로 제출.
나중에 python3로 다시 풀어보기
'코테 준비 > 완전탐색' 카테고리의 다른 글
[백준] 9663. N-QUEEN (N-QUEEN 알고리즘) -백트래킹 (0) 2023.02.03 [프로그래머스] 문자열 압축 (아이디어 다시보기) (0) 2023.01.19 [백준] 17626. Four Squares (다시 풀어보기) (0) 2023.01.08