Notice
Recent Posts
Recent Comments
Link
«   2025/04   »
1 2 3 4 5
6 7 8 9 10 11 12
13 14 15 16 17 18 19
20 21 22 23 24 25 26
27 28 29 30
Archives
Today
Total
관리 메뉴

시간이 NullNull

[JAVA] [SWEA] 8016. 홀수 피라미드 본문

알고리즘

[JAVA] [SWEA] 8016. 홀수 피라미드

4NIng 2020. 2. 23. 02:32

경표는 아래와 같이 삼각형 모양으로 숫자를 쌓기로 했다.

1층에는 1개, 2층에는 3개, 3층에는 5개, … 와 같이 쌓는다.




위와 같이 경표는 끝도 없이 피라미드를 쌓을 때, N층의 제일 왼쪽, 오른쪽에 쓰게 될 숫자가 무엇일지 예측해보자.

 

결국 숫자의 규칙을 찾으면 피라미드를 만들 필요도 없이 숫자를 바로 구할 수 있다.

 

어... 이 문제의 경우 사실 최대한 몇번째 줄인지를 나타내는 N에 대해서 연관지어서 생각한다면 금방 알 수 있다.

 

Tip. 이런 문제의 경우 숫자가 매우 불규칙해 보이므로 1을 더하거나 빼고 그 숫자를 다시 무언가를 해보도록 하자

 

아래에는 이 문제의 소스 코드이다.

 

import java.io.BufferedReader;
import java.io.BufferedWriter;
import java.io.InputStreamReader;
import java.io.OutputStreamWriter;
 
public class Solution {
 
    public static void main(String[] args) throws Exception{
        BufferedReader br = new BufferedReader(new InputStreamReader(System.in));
        BufferedWriter bw = new BufferedWriter(new OutputStreamWriter(System.out));
        int T = Integer.parseInt(br.readLine());
        long N = 0;
        long result1 = 0;
        long result2 = 0;
        for(int t=1; t<=T; ++t) {
            N = Long.parseLong(br.readLine());
            result1 = 2*(N-1)*(N-1) + 1;
            result2 = 2*N*N - 1;
            bw.write("#"+t+" "+result1+" "+result2+"\n");
        }
        br.close();
        bw.close();
    }
 
}
Comments