코딍코딍
코딩기록
코딍코딍
전체 방문자
오늘
어제
  • 분류 전체보기 (271)
    • 개발 (2)
    • Java (1)
    • 스프링 (28)
    • JPA (11)
    • Git (3)
    • 알고리즘 (160)
      • 백준 (132)
      • 프로그래머스 (8)
      • SWEA (20)
    • 토이 프로젝트 (14)
      • 간단한 Springboot CRUD (1)
      • 게시판 프로젝트 (13)
    • 알고리즘 개념정리 (8)
    • 오류 해결 (13)
    • 보류 (0)
    • AWS (5)
    • 트러블 슈팅 (0)
    • 회고 (3)
    • CS (4)

블로그 메뉴

  • 홈
  • 태그
  • 방명록

공지사항

최근 글

티스토리

hELLO · Designed By 정상우.
코딍코딍

코딩기록

알고리즘/SWEA

[SWEA] 8016번 : 홀수 피라미드

2023. 11. 3. 15:00

 

https://swexpertacademy.com/main/code/problem/problemDetail.do?contestProbId=AWvzGUKKPVwDFASy

 

SW Expert Academy

SW 프로그래밍 역량 강화에 도움이 되는 다양한 학습 컨텐츠를 확인하세요!

swexpertacademy.com

문제

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

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

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

 

입력

첫 번째 줄에 테스트 케이스의 수 T가 주어진다.

각 테스트 케이스의 첫 번째 줄에는 층의 번호 N(1≤N≤109)이 주어진다.

 

출력

각 테스트 케이스마다 ‘#x’(x는 테스트케이스 번호를 의미하며 1부터 시작한다)를 출력하고,

각 테스트 케이스마다 N층의 제일 왼쪽, 오른쪽에 쓰게 될 숫자를 공백으로 구별하여 출력한다.

 


소스코드

import java.io.*;

class Solution {
    public static void main(String[] args) throws IOException {
        BufferedReader br = new BufferedReader(new InputStreamReader(System.in));
        StringBuilder sb = new StringBuilder();
        int t = Integer.parseInt(br.readLine());

        for (int i = 0; i < t; i++) {
            int n = Integer.parseInt(br.readLine());
            long left = 1, right = 1;
            long leftPlus = -2, rightPlus = 2;

            for (int j = 1; j < n; j++) {
                leftPlus += 4;
                rightPlus += 4;
                left += leftPlus;
                right += rightPlus;
            }

            sb.append("#" + (i + 1) + " " + left + " " + right + "\n");
        }

        System.out.println(sb);
    }
}

 

해결 방법

  1. 홀수 피라미드를 살펴보면 왼쪽값과 오른쪽값의 규칙을 찾을 수 있다. 4씩 증가하여 더해진다.
  2. 더해지는 왼쪽값: +2, (2+4), (6+4), (10+4), ... / 더해지는 오른쪽: +6, (6+4), (10+4), (14+4), ...
  3. 왼쪽값(left), 오른쪽값(right), 더해지는 왼쪽값(leftPlus), 더해지는 오른쪽값(rightPlus)을 변수로 두고 위  규칙에 맞게 구현한다.

'알고리즘 > SWEA' 카테고리의 다른 글

[SWEA] 16800번 : 구구단 걷기  (0) 2023.11.05
[SWEA] 4615번 : 재미있는 오셀로 게임  (0) 2023.11.05
[SWEA] 11315번 : 오목 판정  (1) 2023.11.03
[SWEA] 1860번 : 진기의 최고급 붕어빵  (0) 2023.11.02
[SWEA] 9658번 : 유효숫자 표기  (1) 2023.11.02
    '알고리즘/SWEA' 카테고리의 다른 글
    • [SWEA] 16800번 : 구구단 걷기
    • [SWEA] 4615번 : 재미있는 오셀로 게임
    • [SWEA] 11315번 : 오목 판정
    • [SWEA] 1860번 : 진기의 최고급 붕어빵
    코딍코딍
    코딍코딍
    ㅎ2

    티스토리툴바