문제
https://www.acmicpc.net/problem/18111
18111번: 마인크래프트
팀 레드시프트는 대회 준비를 하다가 지루해져서 샌드박스 게임인 ‘마인크래프트’를 켰다. 마인크래프트는 1 × 1 × 1(세로, 가로, 높이) 크기의 블록들로 이루어진 3차원 세계에서 자유롭게
www.acmicpc.net
# 이 문제는 높이를 브루트 포스로 1부터 256까지 찾아간다.
# 현재 높이가 목표의 높이와의 대소에 따라 인벤토리가 바뀐다.
# 이 말이 무슨 말이냐면 현재 높이가 목표 높이보다 작다면 인벤토리에서 블록을 꺼내서 현재 블록에 추가해준다는 것이다.(대신 인벤토리는 감소한다.)
# 현재 높이가 목표 높이보다 크다면 필요 없는 블록들을 인벤토리에 넣어줄 수 있다.(대신 현재 블록은 감소한다.)
# 여기서 입력받을 때의 초기 인벤토리 값과 추가로 인벤토리에 넣어준 값을 더해준 값이 인벤토리에서 나온 값보다 작다면 목표 높이로 땅을 고를 수 없기 때문에(인벤토리에서 나온 값이 더 많으면 목표 높이로 땅을 고르게 할 수 없다, 블록이 모자라다) continue를 사용해 다음 목표 높이로 넘어간다.
# 시간은 인벤토리로 들어가는 작업 곱하기 2와 인벤토리에서 나오는 작업을 더한 값이다.
# 초기 시간보다 작으면 시간과 높이를 갱신해준다.
# 높이는 오름차순으로 돌기 때문에 시간이 같더라도 높이가 높은 값으로 출력이 된다.
# pypy3 언어로 제출 필수!
정답
* 전체 코드가 필요하신 분은 아래 github 주소를 참고해주세요!
GitHub - JunSeokCheon/Codingtest: python for codingtest
python for codingtest. Contribute to JunSeokCheon/Codingtest development by creating an account on GitHub.
github.com
'알고리즘 > baekjoon' 카테고리의 다른 글
[알고리즘/baekjoon] 11726_2×N 타일링(python) (0) | 2021.11.22 |
---|---|
[알고리즘/baekjoon] 11659_구간 합 구하기 4(python) (0) | 2021.11.22 |
[알고리즘/baekjoon] 1929_소수 구하기(python) (0) | 2021.10.25 |
[알고리즘/baekjoon] 1966_프린터 큐(python) (0) | 2021.10.25 |
[알고리즘/baekjoon] 1874_스택 수열(python) (0) | 2021.10.25 |
댓글