스터디사이트 : https://www.hackerrank.com



JAVA 알고리즘 특수기호로 직각삼각형 만들기



※ 코딩실습 - 조건


입력받은 n 만큼의 행크기로 계단모양의 직각삼각형을 만들어 보아라.


n과 공백을 이용하여 구하면 된다.

마지막 행에는 공백이 없겠죠?



입력

6


출력

     #

    ##

   ###

  ####

 #####

######



코딩 & 결과

위에 입력 예 처럼 6을 입력 받았다고 하면,

행은 6행.

1행 - 공백 5개 / # 1개

2행 - 공백 4개 / # 2개

3행 - 공백 3개 / # 3개

4행 - 공백 2개 / # 4개

5행 - 공백 1개 / # 5개

6행 - 공백 0개 / # 6개


행의 수#의 갯수와 똑같고,

공백의 갯수(입력받은 행의 수) - (행갯수 or # 갯수) 를 하면 되겠다.


그러면 위의 예에서는 공식화를 해보면,

# 갯수 : n

공백 갯수 : 행갯수-n


이 되는 것이다.


public static void main(String[] args) {

        /* Enter your code here. Read input from STDIN. Print output to STDOUT. Your class should be named Solution. */

        Scanner scan = new Scanner(System.in);

        int n = scan.nextInt();

        String spa = " ";        // 공백 저장하는 변수

        String mark = "#";     // # 저장하는 변수

        String res = "";          // 한 행에 대한 결과 저장 & 출력하는 변수

        for(int i=1; i<=n; i++){

            res="";                 // 새로운 행이 넘어갈 때마다 res 변수 초기화

            for(int j=n-i; j>=1; j--){

                res = res + spa;  // 공백 갯수만큼 res변수에 추가

            } //end for j 

            res = res + mark;    // 공백 추가 후 # 갯수를 res변수 추가

            mark = mark + "#"; // 한 행이 넘어갈수록 # 는 한개씩 쌓아둠

            System.out.println(res);

        } //end for

    }

결과 : 

     #

    ##

   ###

  ####

 #####

######



+ Recent posts