본문 바로가기
💻 하나씩 차곡차곡/자료구조 & 알고리즘(JAVA)

*를 n개 출력하되 w개마다 줄 바꿈하기 (chap01/PrintStras1,2)

by 뚜루리 2022. 10. 11.
728x90
320x100
package chap01;

import java.util.Scanner;

public class PrintStars1 {

    //*를 n개 출력하되 w개마다 줄 바꿈을 하는 프로그램.

    public static void main(String[] args) {
        Scanner scan = new Scanner(System.in);

        int n, w;

        System.out.println("*개를 출력하되 w개마다 줄을 바꿔서 출력합니다.");

        // n개를 출력하되 0 이하면 안됨.
        do{
            System.out.println("n값 : ");
            n = scan.nextInt();
        } while(n <= 0);

        // w개도 0 이하면 안됨, n보다는 커야함.
        do{
            System.out.println("w값 : ");
            w = scan.nextInt();
        } while(w <= 0 || w > n);


        for (int i = 0; i < n; i++){
            System.out.print("*");
            if (i % w == w - 1)
                System.out.println();
        }
        if (n % w != 0)
            System.out.println();

    }
}

위와 같이 구현이 가능하나 for문을 돌때마다 If문이 돌아 가기 때문에 비효율적일 수 있음. 

 

package chap01;

import java.util.Scanner;

public class PrintStars2 {

    //*를 n개 출력하되 w개마다 줄 바꿈을 하는 프로그램.

    public static void main(String[] args) {
        Scanner scan = new Scanner(System.in);

        int n, w;

        System.out.println("*개를 출력하되 w개마다 줄을 바꿔서 출력합니다.");

        // n개를 출력하되 0 이하면 안됨.
        do{
            System.out.println("n값 : ");
            n = scan.nextInt();
        } while(n <= 0);

        // w개도 0 이하면 안됨, n보다는 커야함.
        do{
            System.out.println("w값 : ");
            w = scan.nextInt();
        } while(w <= 0 || w > n);


        for (int i = 0; i < n / w; i++){
            System.out.println("*".repeat(w));
        }
        int rest = n % w;
        if (rest != 0)
            System.out.println("*".repeat(rest));

    }
}

위와 같이 변경하여 구현할 수 있음. 

728x90
320x100