알고리즘 : 프로그래머스 : JAVA : 직사각형 별찍기

2022. 1. 15. 16:42알고리즘/프로그래머스

반응형

<문제>


<코드>

import java.util.Scanner;

public class Solution {
    public static void main(String[] args) {
        Scanner sc = new Scanner(System.in);
        int a = sc.nextInt();
        int b = sc.nextInt();
        for(int i=0; i<b; i++){        // @1
            for(int j=0; j<a; j++){        // @2 
               System.out.print("*");
            }
            System.out.println();      //@3
        }
    }
}

입력은 5, 3이라고 가정한다.
@1 - 행의 전체 수는 3이다. 그러므로 전체 반복되는 횟수는 3번(b) 이다.

@2 - 찍어야되는 별의 수 만큼 반복한다. 찍어야 되는 별의 수는 a 이므로 a 만큼 반복한다.

@3 - 각 행을 모두 찍었을 때는 다음 행을 출력해야 하므로 한 칸 띄워준다.

(System.out.println() 메소드를 사용하면 모니터에 전달된 데이터를 출력한 후에 줄 바꿈까지 해준다.

println() 메소드와는 달리 print() 메소드는 전달된 데이터를 출력한 후에 줄 바꿈을 하지 않는다)


<설명>

 

1. 입력받기 위한 스캐너 클래스 선언을 위해 import를 통해 외부 클래스를 호출한 뒤 Scanner 객체 생성을 한다.

 
import java.util.Scanner;


2. 2중 for문을 사용
3. *을 입력받은 만큼 a번 찍고 a번 다 찍으면 다음 행으로 넘어감(이 과정을 b행까지 진행)

 

 

<다른 방법>

import java.util.Scanner;

public class Solution {
    public static void main(String[] args) {
        Scanner sc = new Scanner(System.in);
        int a = sc.nextInt();
        int b = sc.nextInt();
        StringBuilder sb = new StringBuilder();
        for(int i=0; i<a; i++){
            sb.append("*");
        }
        for(int i=0; i<b; i++){
            System.out.println(sb.toString());
        }
    }
}
반응형