Study/Algorithm

프로그래머스-직사각형 별찍기(java)

의미없는 시간은 없다. 2022. 7. 7. 02:04

문제 설명

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

제한 조건

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

-----------------------------

//숫자 2개를 입력받아서 별을 채우는 문제

//ex : 5, 3 숫자 입력시

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

//나의 접근방법 2중 for문을 도는데 System.out.println();은 문자열 출력 후 자동으로 개행을 해주기때문에

//System.out.print();을 사용하고 개행시에는 System.out.println();을 사용하였다.

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문이므로 두번째 입력값으로 반복
            for(int j=0; j<a; j++){  // * 출력을 위한 for문이므로 첫번째 입력값으로 반복
                System.out.print("*");
            }
            System.out.println();
        }
    }
}

//다른사람의 풀이법

import java.util.Scanner;
import java.util.stream.IntStream;

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();
        IntStream.range(0, a).forEach(s -> sb.append("*"));
        IntStream.range(0, b).forEach(s -> System.out.println(sb.toString()));
    }
}

 

 

반응형