[Softeer] 6280번 지도 자동 구축 - Java

yseo14·2025년 1월 25일

코딩테스트 대비

목록 보기
47/88


문제링크

풀이

지도가 정사각형이므로, 단계별로 가로선 혹은 세로선에 점이 몇개인지 확인을 해보면 규칙을 찾을 수 있다.

  • 1단계: 3 * 3
  • 2단계: 5 * 5
  • 3단계: 9 * 9
  • 4단계: 17 * 17

📌 규칙
어떤 단계의 한 가로선에 있는 점의 개수는 (전 단계의 가로선에 있는 점) + (전 단계의 가로선에 있는 점 - 1)이다.

  • 0단계: 222 * 2
  • 1단계: (2+(21))(2+(21))=33(2 + (2 - 1)) * (2 + (2 - 1)) = 3 * 3
  • 2단계: (3+(31))(3+(31))=55(3 + (3 - 1)) * (3 + (3 - 1)) = 5 * 5
  • 3단계: (5+(51))(5+(51))=99(5 + (5 - 1)) * (5 + (5 - 1)) = 9 * 9
  • 4단계: (9+(91))(9+(91))=1717(9 + (9 - 1)) * (9 + (9 - 1)) = 17 * 17

각 단계와 곱해지는 수의 연관관계는 딱히 없으므로, 재귀를 수행하는 메서드의 인자로 단계와 곱해지는 수를 함께 전달하여 독립적으로 계산할 수 있도록 구성하면 된다.

코드

import java.io.*;
import java.util.*;

public class Main {
    static int n;
    
    public static void main(String[] args) throws Exception {
        BufferedReader br = new BufferedReader(new InputStreamReader(System.in));
        n = Integer.parseInt(br.readLine());
        System.out.println(func(1, 2));
    }

    public static int func(int step, int num){
        int next = num + (num - 1);
        if(step == n){
            return next * next;
        } else {
            return func(step + 1, next);
        }
    }
}
profile
like the water flowing

0개의 댓글