문제
* ** *** **** *****
1. 하드 코딩
package ex03;
public class Prc03 {
    public static void main(String[] args) {
        // 1. 끝에서 부터 * 1개
        System.out.print(" ");
        System.out.print(" ");
        System.out.print(" ");
        System.out.print(" ");
        System.out.print("*");
        System.out.println();
        // 2. 끝에서 부터 * 2개
        System.out.print(" ");
        System.out.print(" ");
        System.out.print(" ");
        System.out.print("*");
        System.out.print("*");
        System.out.println();
        // 3. 끝에서 부터 * 3개
        System.out.print(" ");
        System.out.print(" ");
        System.out.print("*");
        System.out.print("*");
        System.out.print("*");
        System.out.println();
    }
}- 공백은 1개씩 줄어들고, *의 갯수가 1개씩 늘어남 (패턴)
2. 반복문 사용해서 바꾸기
package ex03;
public class Prc03 {
    public static void main(String[] args) {
        // 1. 끝에서 부터 * 1개
        for (int i = 0; i < 4; i++) {
            System.out.print(" ");
        }
        for (int j = 0; j < 1; j++) {
            System.out.print("*");
        }
        System.out.println();
        // 2. 끝에서 부터 * 2개
        for (int i = 0; i < 3; i++) {
            System.out.print(" ");
        }
        for (int j = 0; j < 2; j++) {
            System.out.print("*");
        }
        System.out.println();
        // 3. 끝에서 부터 * 3개
        for (int i = 0; i < 2; i++) {
            System.out.print(" ");
        }
        for (int j = 0; j < 3; j++) {
            System.out.print("*");
        }
        System.out.println();
        // 4. 끝에서 부터 * 4개
        for (int i = 0; i < 1; i++) {
            System.out.print(" ");
        }
        for (int j = 0; j < 4; j++) {
            System.out.print("*");
        }
        System.out.println();
        // 5. 끝에서 부터 * 5개
        for (int i = 0; i < 0; i++) {
            System.out.print(" ");
        }
        for (int j = 0; j < 5; j++) {
            System.out.print("*");
        }
        System.out.println();
    }
}
- System.out.print(” “)가 반복되어, 숫자가 1씩 감소하는 반복문 사용하고 변수 찾기
- System.out.print(”*”)가 반복되어, 숫자가 1씩 늘어나는 반복문 사용하고 변수 찾기
3. 변수 선언
package ex03;
public class Prc03 {
    public static void main(String[] args) {
        int h = 4;
        int s = 1;
        // 1. 끝에서 부터 * 1개
        for (int i = 0; i < h; i++) {
            System.out.print(" ");
        }
        for (int j = 0; j < s; j++) {
            System.out.print("*");
        }
        System.out.println();
        // 2. 끝에서 부터 * 2개
        h = h - 1;
        for (int i = 0; i < h; i++) {
            System.out.print(" ");
        }
        s++;
        for (int j = 0; j < s; j++) {
            System.out.print("*");
        }
        System.out.println();
        // 3. 끝에서 부터 * 3개
        // 2. 끝에서 부터 * 2개
        h = h - 1;
        for (int i = 0; i < h; i++) {
            System.out.print(" ");
        }
        s++;
        for (int j = 0; j < s; j++) {
            System.out.print("*");
        }
        System.out.println();
        // 4. 끝에서 부터 * 4개
        // 2. 끝에서 부터 * 2개
        h = h - 1;
        for (int i = 0; i < h; i++) {
            System.out.print(" ");
        }
        s++;
        for (int j = 0; j < s; j++) {
            System.out.print("*");
        }
        System.out.println();
        // 5. 끝에서 부터 * 5개
        h = h - 1;
        for (int i = 0; i < h; i++) {
            System.out.print(" ");
        }
        s++;
        for (int j = 0; j < s; j++) {
            System.out.print("*");
        }
        System.out.println();
    }
}- System.out.print(" ")의 반복문의 변수(for (int i =0; i < 4; i++)를 h로 선언
- h가 1씩 감소하는 로직 생성 (h = h - 1;)
- System.out.print("*")의 반복문의 변수(for (int j =0; j < 4; j++)를 s로 선언
- s가 1씩 증가하는 로직 생성(s++;)
4. 모든 코드 통일
package ex03;
public class Prc03 {
    public static void main(String[] args) {
        int h = 5;
        int s = 0;
        // 1. 끝에서 부터 * 1개
        h = h - 1;
        for (int i = 0; i < h; i++) {
            System.out.print(" ");
        }
        s++;
        for (int j = 0; j < s; j++) {
            System.out.print("*");
        }
        System.out.println();
        // 2. 끝에서 부터 * 2개
        h = h - 1;
        for (int i = 0; i < h; i++) {
            System.out.print(" ");
        }
        s++;
        for (int j = 0; j < s; j++) {
            System.out.print("*");
        }
        System.out.println();
        // 3. 끝에서 부터 * 3개
        h = h - 1;
        for (int i = 0; i < h; i++) {
            System.out.print(" ");
        }
        s++;
        for (int j = 0; j < s; j++) {
            System.out.print("*");
        }
        System.out.println();
        // 4. 끝에서 부터 * 4개
        h = h - 1;
        for (int i = 0; i < h; i++) {
            System.out.print(" ");
        }
        s++;
        for (int j = 0; j < s; j++) {
            System.out.print("*");
        }
        System.out.println();
        // 5. 끝에서 부터 * 5개
        h = h - 1;
        for (int i = 0; i < h; i++) {
            System.out.print(" ");
        }
        s++;
        for (int j = 0; j < s; j++) {
            System.out.print("*");
        }
        System.out.println();
    }
}1번과 2, 3, 4, 5번의 코드가 다르다 (아래 코드 참고)
        int h = 4;
        int s = 1;
        // 1. 끝에서 부터 * 1개
        // ?? 1번에는 없다.
        for (int i = 0; i < h; i++) {
            System.out.print(" ");
        }
        // ?? 1번에는 없다.
        for (int j = 0; j < s; j++) {
            System.out.print("*");
        }
        System.out.println();
        // 2. 끝에서 부터 * 2개
        h = h - 1; // 2번 부터 있다.
        for (int i = 0; i < h; i++) {
            System.out.print(" ");
        }
        s++; // 2번 부터 있다.
        for (int j = 0; j < s; j++) {
            System.out.print("*");
        }
        System.out.println();- int h = 4; 를 int h = 5; 으로 변경
- int s = 1; 를 ins s = 0; 으로 변경
5. 공통 모듈 생성 후 조건문 사용
package ex03;
public class Prc03 {
    public static void main(String[] args) {
        int h = 5;
        int s = 0;
        // 1. 끝에서 부터 * 1개
        for (int k = 0; k < 5; k++) {
            h = h - 1;
            for (int i = 0; i < h; i++) {
                System.out.print(" ");
            }
            s++;
            for (int j = 0; j < s; j++) {
                System.out.print("*");
            }
            System.out.println();
        }
    }
}
Share article