ABOUT ME

-

Today
-
Yesterday
-
Total
-
  • 18111: 마인크래프트
    BOJ 2023. 10. 14. 23:28

    접근 : 처음부터 접근을 완전 잘못했다. 배열의 값을 직접 바꾸면서 진행하려고 했었는데 지금생각해보니 그러면 정말 매우 복잡해지는 길이라는 생각이 든다. 블로그의 도움이라면 절대로 풀 지 못했을 것이다... 블로그에서는 백준 카테고리와 같은 브루트포스 알고리즘을 통해서 설명해주었다. 높이를 브루트포스하여 푼다. 높이 0부터 256까지 검사하면서 어떤 높이 값이 적당할지 체크하는 것이다. 중간 중간에 있는 조건문들도 초견에 풀기 정말로 힘들 것 같다.

     

    풀이 : 높이를 높여가며 먼저 쌓아야 할 블록과 제거해야 할 블록의 개수를 센다. 왜 이렇게 하나면 가장 기본적으로 인벤토리에 있는 블록 개수와 쌓아야하는 블록의 개수에 오류가 생기면 바로 패스해야하기 때문이고 또 시간을 계산할 때에도 꼭 필요하기 때문이다. 블록 개수 판단은

    if(맵의 한 타일에서 높이 - 정한높이가 양수) => 지워야할 블록 개수

        else => 채워야할 블록 개수

    로 생각한다.

    그 다음엔 높이와 걸린 시간을 갱신한다. 시간은 

    if(지울 블록의 개수 + 처음에 가지고 있던 인벤토리 블록의 개수 >= 채울 블록 개수)

        => 소요시간 : 지울 블록 개수 * 2 + 채울 블록 개수

             if(소요시간이 작다면) 시간 갱신

    로 한다.

     

    'BOJ' 카테고리의 다른 글

    2941 크로아티아 알파벳  (0) 2023.05.06
Designed by Tistory.