File tree Expand file tree Collapse file tree
Expand file tree Collapse file tree Original file line number Diff line number Diff line change 1+ # [ Bronze II] 아즈텍 피라미드 - 7770
2+
3+ [ 문제 링크] ( https://www.acmicpc.net/problem/7770 )
4+
5+ ### 성능 요약
6+
7+ 메모리: 17700 KB, 시간: 176 ms
8+
9+ ### 분류
10+
11+ 수학
12+
13+ ### 제출 일자
14+
15+ 2026년 4월 4일 02:31:03
16+
17+ ### 문제 설명
18+
19+ <p >아즈텍의 황제 쿠이틀라우악은 자신의 명예를 위해 피라미드를 만들려고 한다.</p >
20+
21+ <p >아즈텍 피라미드는 돌 블록을 이용해서 만든다. 블록은 1×1×1 크기의 정육면체이다. 쿠이틀라우악은 피라미드의 설립식 때, 블록 하나를 직접 땅에 놓았다. 그 다음 블록부터는 인부들이 설치하며, 이전에 놓여진 블록과 적어도 한 면 전체를 공유해야 한다.</p >
22+
23+ <p >왼쪽 두 개는 가능한 블록의 배치, 오른쪽 세 개는 불가능한 배치이다.</p >
24+
25+ <p ><img alt =" " src =" https://www.acmicpc.net/upload/images/pyra1.png " style =" height :76px ; width :513px " ></p >
26+
27+ <p >블록은 땅의 바로 위에 있거나, 블록의 아래에 있는 블록의 모든 면이 땅이나 다른 블록과 접할 때, 안정적이라고 한다. 피라미드의 모든 블록은 안정적이어야 한다.</p >
28+
29+ <p >아래 그림은 회색 블록을 놓았을 때이며, 그 블록이 안정적인 경우는 왼쪽 세 개, 아닌 경우는 오른쪽 두 개이다.</p >
30+
31+ <p ><img alt =" " src =" https://www.acmicpc.net/upload/images/pyra2.png " style =" height :94px ; width :639px " ></p >
32+
33+ <p >사용할 수 있는 블록의 개수가 주어졌을 때, 그 블록으로 만들 수 있는 가장 높은 안정적인 피라미드의 높이를 구하는 프로그램을 작성하시오.</p >
34+
35+ ### 입력
36+
37+ <p >첫째 줄에 사용할 수 있는 블록의 수 n이 주어진다. (1 ≤ n ≤ 10<sup >9</sup >)</p >
38+
39+ ### 출력
40+
41+ <p >첫째 줄에 블록 n개로 만들 수 있는 가장 높은 안정적인 피라미드의 높이를 출력한다.</p >
42+
Original file line number Diff line number Diff line change 1+ import java .util .Scanner ;
2+
3+ public class Main {
4+ public static void main (String [] args ) {
5+ Scanner sc = new Scanner (System .in );
6+ long n = sc .nextLong ();
7+
8+ long sum = 0 ;
9+ int h = 0 ;
10+
11+ for (int i = 1 ; ; i ++) {
12+ long currentLayerBlocks = (long ) i * i + (long ) (i - 1 ) * (i - 1 );
13+ sum += currentLayerBlocks ;
14+
15+ if (sum > n ) {
16+ break ;
17+ }
18+ h ++;
19+ }
20+
21+ System .out .print (h );
22+ }
23+ }
You can’t perform that action at this time.
0 commit comments