본문 바로가기

Java

같은 문제, 다른 로직

for문을 이용해 삼각형 출력하기.

다이아몬드 예시와 같은 로직을 for문을 이용해서 완성했다.

 

int row2 = 10;
    for (int i = 0; i < row2; i++) {
        for (int j = 0; j < row3; j++) {
               System.out.println("$");    
        }
        for (int k = 0; k < row2-i; k++) {
            System.out.println("*");
        }
        System.out.println();
    }
 
cs

 

 

1번째 for: 줄바꿈 수행

2번째 for: 0개의 $, 개행마다 1씩 늘어나는 $

3번째 for: 총 줄갯수만큼의 *, 개행마다 1개씩 줄어든 *

 

그런데 예시 해설을 봤을땐 더 간단한 방법이 있다는걸 알게 되었다.

 

 

int row3 = 10;
    for (int i = 0; i < row3; i++) {
        String p = "";
        for (int j = 0; j < row3; j++) {
            if (i <= j) {
                p = p + "*";
            } else {
                p = p + "$";
            }
        }
        System.out.println(p);
    }
 
 
cs

 

 

기존에는 $와 *을 하나씩 찍는 방법이였다면

해설에서는 문자열을 저장할 변수 하나를 선언해서 *과 $를 누적저장, 개행시 한줄씩 출력하는 방법이였다.

한줄당 *과 $의 비율은 간단한 if문(i<=j) 한줄로도 판별이 가능하다.