🤖Algorithm

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

Jaeyoung Kim 2022. 7. 15. 17:04
728x90

직사각형 별찍기


문제설명

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


제한조건

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

예시

 입력

5 3

 출력

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

기본코드

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();

        System.out.println(a + b);
    }
}

문제풀이

우선 주어진 코드를 보았을 때 Scanner라고 하는 Java의 기능을 사용하게 되어있다.

Scanner 기능은 코드를 실행한 후 입력하는 값을 바탕으로 결과를 출력해내는 기능이다.

 

위 문제에서는 int a에서 한 번, int b에서 한 번, 총 두 번의 값을 입력하도록 되어있다.

예시로서 5와 3을 입력하였을 때, 별(*)이 5번 반복 출력되는 것이 3줄로 출력되어야 한다.

 

고로 2중 for을 떠올렸다.

가로로 별(*)이 5번 출력된 값을 줄이 바뀌며 3줄로 출력되도록

 

이를 위하여 print와 println을 구분 학습하였다.

print는 단순 값을 출력하는 함수이며 println는 출력 후 한 줄이 띄어지는 개념이다.

//예시로 아래와 같이 값을 출력하면 ***이 나오지만
System.out.print("*")
System.out.print("*")
System.out.print("*")

//println을 쓰면 *가 한 줄 씩 띄며
//*
//*
//* 처럼 출력된다.
System.out.println("*")
System.out.println("*")
System.out.println("*")

최종적으로 아래의 코드로 PASS하였다.

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 j = 0; j < b; j++) {
            for (int i = 0; i < a; i++) {
                System.out.print('*');
            }
            System.out.println();
        }
    }
}
728x90