본문 바로가기
알고리즘/baekjoon

[알고리즘/baekjoon] 18111_마인크래프트(python)

by 천뿌니 2021. 10. 25.
728x90

문제

https://www.acmicpc.net/problem/18111

 

18111번: 마인크래프트

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

www.acmicpc.net

# 이 문제는 높이를 브루트 포스로 1부터 256까지 찾아간다.

# 현재 높이가 목표의 높이와의 대소에 따라 인벤토리가 바뀐다.

# 이 말이 무슨 말이냐면 현재 높이가 목표 높이보다 작다면 인벤토리에서 블록을 꺼내서 현재 블록에 추가해준다는 것이다.(대신 인벤토리는 감소한다.)

# 현재 높이가 목표 높이보다 크다면 필요 없는 블록들을 인벤토리에 넣어줄 수 있다.(대신 현재 블록은 감소한다.)

# 여기서 입력받을 때의 초기 인벤토리 값과 추가로 인벤토리에 넣어준 값을 더해준 값이 인벤토리에서 나온 값보다 작다면 목표 높이로 땅을 고를 수 없기 때문에(인벤토리에서 나온 값이 더 많으면 목표 높이로 땅을 고르게 할 수 없다, 블록이 모자라다) continue를 사용해 다음 목표 높이로 넘어간다.

# 시간은 인벤토리로 들어가는 작업 곱하기 2와 인벤토리에서 나오는 작업을 더한 값이다.

# 초기 시간보다 작으면 시간과 높이를 갱신해준다.

# 높이는 오름차순으로 돌기 때문에 시간이 같더라도 높이가 높은 값으로 출력이 된다.

# pypy3 언어로 제출 필수!

 

정답

 

* 전체 코드가 필요하신 분은 아래 github 주소를 참고해주세요!

https://github.com/JunSeokCheon/Codingtest/blob/master/CLASS2/18111_%EB%A7%88%EC%9D%B8%ED%81%AC%EB%9E%98%ED%94%84%ED%8A%B8.py

 

GitHub - JunSeokCheon/Codingtest: python for codingtest

python for codingtest. Contribute to JunSeokCheon/Codingtest development by creating an account on GitHub.

github.com

 

댓글