스파르타코딩클럽/프로그래머스_Java_알고리즘 기초

[프로그래머스/Java] 직사각형 별 찍기

예령 : ) 2022. 3. 11. 15:26

문제설명


이 문제에는 표준 입력으로 두 개의 정수 n과 m이 주어집니다.
별(*) 문자를 이용해 가로의 길이가 n, 세로의 길이가 m인 직사각형 형태를 출력해보세요.

제한 조건


  • n과 m은 각각 1000 이하인 자연수입니다.

예시


입력

5 3

출력

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

풀이 코드


방법 1

import java.util.Scanner;
 
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++) {
            for (int j = 0; j < a; j++) {
                System.out.print("*");
            }
            System.out.println();
        } 
    }
}

b의 길이만큼 반복문을 돌리고, a의 길이 만큼 *을 찍어준다.

System.out.println( ); 이 없는 상태로 run을 하면 * 15개가 가로로 쭉 붙게 되는데

그건 5개씩 3줄이 줄줄이 이어져 나오는 상태이므로 println( );을 이용해서 줄을 나눠주면 원하는 모양이 나온다.

 

 

방법 2

import java.util.Scanner;
 
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++) {
            System.out.println("*".repeat(a));
        } 
    }
}

방법 1과 비슷하다. b 길이 만큼의 반복문을 돌리고, println("*")을 실행하면 *이 한 개씩 3줄로 나온다.

우리가 원하는 모양은 한 줄에 별이 다섯개 씩 나오는 모양이므로 .repeat( ) 함수를 이용해 a의 수만큼 반복되게 한다.