inblog logo
|
sxias
    자바

    [JAVA] 17. for문을 이용한 별 그리기 2

    문정준's avatar
    문정준
    Feb 05, 2025
    [JAVA] 17. for문을 이용한 별 그리기 2
    Contents
    별 그리기 문제 2문제 분석코드 작성결과

    별 그리기 문제 2

    • 별을 첫 줄에는 7개, 둘째 줄에는 5개, … , 넷째 줄에는 1개를 그리시오.
     

    문제 분석

    • 별의 개수가 7, 5, 3, 1의 순으로 감소
      • 7 = 7 - 2 * 0
      • 5 = 7 - 2 * 1
      • 3 = 7 - 2 * 2
      • 1 = 7 - 2 * 3
        • 총 별의 개수, 곱해지는 수는 동일
        • 끝의 line counter만 변화하므로 이것만 증가하면 됨
        • 별의 개수 = (총 별의 개수 = 7) - (곱해지는 수 = 2) * (line counter - 1 : 0부터 시작)
     

    코드 작성

    package ex03; // ******* // ***** // *** // * public class Prc02 { public static void main(String[] args) { // 1. 별 7 (7 - 2*0)개 그리기 int n = 0; for (int i = 7; i > 2 * n; i--) { System.out.print("*"); } System.out.println(); n++; // 2. 별 5 (7 - 2*1)개 그리기 for (int i = 7; i > 2 * n; i--) { System.out.print("*"); } System.out.println(); n++; // 3. 별 3 (7 - 2*2)개 그리기 for (int i = 7; i > 2 * n; i--) { System.out.print("*"); } System.out.println(); n++; // 4. 별 1 (7 - 2*3)개 그리기 for (int i = 7; i > 2 * n; i--) { System.out.print("*"); } System.out.println(); n++; // 5. 한 번에 다 처리 (이중 반복문) n = 0; for (int line = 0; line < 4; line++) { for (int count = 7; count > 2 * n; count--) { System.out.print("*"); } System.out.println(); n++; // 0, 1, 2, 3 순으로 커져야 하므로 반복 후 1 증가 } } }
    • n이라는 변수를 추가하여 줄이 바뀔 때마다 1씩 추가 (line counter)
      • 다만, line counter가 0부터 시작해야 하므로 반복 후 n++ 코드를 삽입
    • 이중 반복문을 사용하여 줄을 여러 번 적는 것을 반복문으로 단축
      • 별을 연속으로 찍은 후 줄을 바꿔야 하므로 별을 찍는 sout 문은 println이 아닌 print
      • 각 줄의 별 입력이 끝난 후 println을 통한 줄 바꿈
     

    결과

    notion image
     
    💡
    문제 요점
    1. 각 줄이 변경될 때마다 별의 개수가 줄어듦에 주의
    1. line counter의 개념을 이해하고 추가 변수를 사용할 수 있어야 함
    1. 줄 바꿈 및 별 출력의 sout문 차이에 유의
    Share article
    Contents
    별 그리기 문제 2문제 분석코드 작성결과

    Sxias ㆍ a32176740@gmail.com

    RSS·Powered by Inblog