inblog logo
|
An's Blog
    JAVA

    [JAVA] 17. 반대편에서 시작하는 오름차순 별 그리기

    윤설안's avatar
    윤설안
    Feb 10, 2025
    [JAVA] 17. 반대편에서 시작하는 오름차순 별 그리기
    Contents
    문제1. 하드 코딩2. 반복문 사용해서 바꾸기3. 변수 선언4. 모든 코드 통일5. 공통 모듈 생성 후 조건문 사용

    문제

    * ** *** **** *****

    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
    Contents
    문제1. 하드 코딩2. 반복문 사용해서 바꾸기3. 변수 선언4. 모든 코드 통일5. 공통 모듈 생성 후 조건문 사용

    An's Blog

    RSS·Powered by Inblog