이 문제에는 표준 입력으로 두 개의 정수 n과 m이 주어집니다.
별(*) 문자를 이용해 가로의 길이가 n, 세로의 길이가 m인 직사각형 형태를 출력해보세요.
n과 m은 각각 1000 이하인 자연수입니다.
입력
5 3
출력
* * * * *
* * * * *
* * * * *
import java.util.Scanner;
public class RectangleStar {
public static void main(String[] args) {
// sc라는 변수에 키보드 입력값을 선언
Scanner sc1 = new Scanner(System.in);
// 정수 a와 b에 키보드로 입력한 정수를 대입
int a = sc1.nextInt();
int b = sc1.nextInt();
// 이중 for문 출력방식
// : 바깥의 for문에 첫 번째 숫자가 대입돼서 돌기 시작 -> 안쪽의 for문이 끝까지 반복해서 돎
// -> 바깥의 for문에 다음 숫자가 대입돼서 돌기 시작 -> 안쪽의 for문이 끝까지 반복해서 돎 -> ........
// 따라서 세로줄에 해당하는 값을 바깥 for문에 대입하고, 가로줄에 해당하는 값을 안쪽 for문에 대입해야 함
for (int n = 0; n < b; n++) {
for (int m = 0; m < a; m++) {
// print되는 값을 줄바꿈 하지 않고 가로로 열거
System.out.print("*");
}
// 안쪽 for문이 다 돌고 바깥쪽 for문으로 넘어갈 떄 줄바꿈을 시킴
System.out.println();
}
}
}
// 보통 가로를 먼저 생각하고, 그 다음에 세로를 생각하기 때문에 아래의 답이 더 직관적임
public static void main(String[] args) {
Scanner sc2 = new Scanner(System.in);
int a = sc2.nextInt();
int b = sc2.nextInt();
// 문자의 형태로 변수 star를 선언
String star = "";
// i가 a의 값까지 1씩 늘어날 때마다 변수 star에 "*"를 하나씩 추가
for (int i = 1; i <= a; i++) {
star += "*";
}
// i가 b의 값까지 1씩 늘어날때마다
for (int i = 1; i <= b; i++) {
// 위 for문에서 생성된 star 값을 한 줄씩 출력
System.out.println(star);
}
}