Triangular Output

박영준·2022년 11월 24일
0

코딩테스트

목록 보기
33/300
public class Main {
    public void solution(int star) {
				
        System.out.println();
    }

    public static void main(String[] args) {
        Main method = new Main();
        int star = 9;
        method.solution(star);
    }
}

첫째 줄에 정수 n이 주어진다. (0≤n≤100)

출력: 다음 예제와 같이 삼각형 모양으로 ‘*’을 출력하세요.(공백의 개수와 별의 개수를 정확하게 확인해주시길 바랍니다.)

입출력 예

3

6

지정 입력값

9


정답

방법 1

public class Main {
    public void solution(int star) {
        //star 는 입력될 값 = 층 수

        //바깥 for 문은 각 층 수를 나타낸다(star 가 3이면 3층, 9면 9층)
        // 인덱스가 0부터 시작한다는 점을 활용하여 0으로 초기화
        for (int i = 0; i < star; i++) {

            //공백을 나타내기위한 for 문
            //초기식이 star-1인 이유는 공백을 나타내기 위함이다
            //가운데를 기준으로 찍히는 별표를 제외하고, 양 옆으로 공백을 만든다
            //층수가 높아질수록 필요한 공백 수는 적어지므로, j--를 해준다.
            for (int j = star - 1; i < j; j--) {
                System.out.print(" ");
            }

            //별표를 나타내기위한 for 문
            //2 * i + 1 식은 홀수 개수인 별을 나타내기 위함이다.(배열은 0부터 시작하기 때문)
            for (int j = 0; j < 2 * i + 1; j++ ) {
                System.out.print("*");
            }

            // 행을 바꿀 수 있도록 println() 을 사용
            System.out.println();
        }
    }

    public static void main(String[] args) {
        Main method = new Main();
        int star = 9;
        method.solution(star);
    }
}

총 9층이 있다면
바깥 for문으로 1층으로 오고 -> 첫번째 안쪽 for문으로 공백 8개를 만들고 -> 두번째 안쪽 for문으로 별표 1개를 만든다.
바깥 for문으로 2층으로 오고 -> 첫번째 안쪽 for문으로 공백 7개를 만들고 -> 두번째 안쪽 for문으로 별표 3개를 만든다.
.
.
.
=> 피라미드의 왼쪽부분만 공백을 만들고, 공백에 별표를 홀수 개수만큼만 배치

각주로 적어 놓은 메모

  1. 첫째 줄에 정수 n이 주어진다. (0≤n≤100)
  2. 삼각형 모양으로 ‘*’을 출력 (주의!! 공백의 개수와 별의 개수를 정확하게 확인 --> 피라미드 모양!)
  3. 입력되는 값은 '층수' --> '9'
  4. 양쪽에 하나씩 star 가 추가되므로, star 는 무조건 홀수 개수를 가짐
    반면에, 공백은 짝수 개수로 줄어든다.
  5. 공백을 이용
  6. '혼공자' 中 중첩 for 문 파트에서 비슷한 유형 본 적 있음
profile
개발자로 거듭나기!

0개의 댓글