[실전 문제] mountain

2021. 2. 18. 13:23코딩 테스트/실전 문제

1. 문제

봉우리가 여러개인 산 모양을 출력한다. 산 모양은 그림과 같고 좌우 대칭이다.


입력

첫 번째 줄에 숫자를 입력 받는다. 숫자의 크기는 20보다 작은 자연수이다.

출력

출력 예의 형식으로 출력한다.

예제 입력

case 1) 3

case 2) 5

예제 출력

case 1) 1213121

case 2) 1213121412131215121312141213121

 

 

 

2. 풀이

이 문제의 풀이도 생각하는 틀에서 벗어난다면 쉽게 구할 수 있는 문제이다. 4를 예시로 넣었을 때, 그림처럼 표현할 수 있다.

import java.io.*;

public class Main {

    private static final BufferedReader br = new BufferedReader(new InputStreamReader(System.in));
    private static final BufferedWriter bw = new BufferedWriter(new OutputStreamWriter(System.out));

    private static StringBuilder sb;
    public static void main(String[] args) throws IOException {

        int n = Integer.parseInt(br.readLine());
        sb = new StringBuilder();

        mountain(n);
        bw.write(sb.toString());
        br.close();
        bw.flush();
        bw.close();
    }

    private static void mountain(int n) {
        if(n == 1) sb.append(1);
        else {
            mountain(n-1);
            sb.append(n);
            mountain(n-1);
        }
    }

}
728x90