[백준] 18111번 : 마인크래프트 (브루트포스 알고리즘)- 파이썬[Python]

    728x90

    문제

     

    18111번: 마인크래프트

    팀 레드시프트는 대회 준비를 하다가 지루해져서 샌드박스 게임인 ‘마인크래프트’를 켰다. 마인크래프트는 1 × 1 × 1(세로, 가로, 높이) 크기의 블록들로 이루어진 3차원 세계에서 자유롭게

    www.acmicpc.net

    풀이

    import sys
    N,M,B = map(int,sys.stdin.readline().split())
    list1=[]
    solve=[]
    for i in range(N):
      list1+=(map(int,sys.stdin.readline().split()))
    for i in range(min(list1),max(list1)+1):
      bag=B
      sec=0
      for ground in list1:
        if (ground-i)>0: #1번작업
          bag+=(ground-i)
          sec+=2*(ground-i)
        elif (ground-i)<0:#2번작업
          bag+=(ground-i)
          sec+=1*(ground-i)*-1 #양수로 전환하여 곱하기
      if bag>=0:
        solve.append([sec,i])
    solve.sort(key=lambda x:(x[0],-x[1])) #걸린시간 오름차순, 높이 내림차순
    print(solve[0][0],solve[0][1])

     

    댓글