logo

𝝅번째 알파카의 개발 낙서장

[프로그래머스 / JAVA] Level 1 직사각형 별찍기 (12954)

게시글
⏰ 2021-12-19 07:18:31

D O W N

https://user-images.githubusercontent.com/50317129/145976356-6b5d1430-31c0-4c34-829e-6be8f747ab19.png
프로그래머스
이 게시글은 프로그래머스 시리즈의 78개 중 64번 째 게시글입니다.
https://user-images.githubusercontent.com/50317129/260317030-e4b8575b-f09e-47f4-ab70-168a817268c6.png

Table of Contents

https://user-images.githubusercontent.com/50317129/260317030-e4b8575b-f09e-47f4-ab70-168a817268c6.png

직사각형 별찍기

랭크사용 언어
Level 1
JAVA

🔗 🔗 직사각형 별찍기

문제 설명

이 문제에는 표준 입력으로 두 개의 정수 nm이 주어집니다.

별(*) 문자를 이용해 가로의 길이가 n, 세로의 길이가 m인 직사각형 형태를 출력해보세요.

제한 조건

  • nm은 각각 1000 이하인 자연수입니다.

예시

입력

TXT

1
5 3

출력

TXT

1
2
3
*****
*****
*****

풀이

이 번엔 특이하게 Scanner 객체를 통해 사용자의 입력을 직접 받는 방식이다. 직접 n, m을 받아 해당 크기만큼 별표(*)로 사각형을 찍어 출력한다. 학부 시절 처음 C언어를 배웠을 때가 생각나던 문제.

필자는 개인적으로 Scanner보다 BufferedReader를 사용하여 사용자 입력을 받는 것을 더 선호한다. 이유는 BufferedReader의 성능이 더 뛰어나기 때문.

어차피 미묘한 성능차가 알고리즘의 수행 여부를 판단하지 않으므로, 그냥 원하는 걸로 사용해도 무방하다.


n, m을 입력하여 n개의 별을 m줄 만큼 표시하자. repeat() 메서드를 활용하여 특정 문자열을 원하는 만큼 반복해 이중포문 없이 구성할 수 있다.

코드

JAVA

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
import java.io.BufferedReader;
import java.io.IOException;
import java.io.InputStreamReader;
import java.util.Arrays;

/**
 * 직사각형 별찍기 클래스
 *
 * @author RWB
 * @since 2021.12.13 Mon 22:27:04
 */
class Solution
{
	/**
	 * 메인 메서드
	 *
	 * @param args: [String[]] 파라미터
	 */
	public static void main(String[] args) throws IOException
	{
		BufferedReader reader = new BufferedReader(new InputStreamReader(System.in));
		
		int[] inputs = Arrays.stream(reader.readLine().split(" ")).mapToInt(Integer::parseInt).toArray();
		
		for (int i = 0; i < inputs[1]; i++)
		{
			System.out.println("*".repeat(inputs[0]));
		}
		
		reader.close();
	}
}

🏷️ Related Tag

# 프로그래머스
# 알고리즘
# JAVA(자바)
# Level 1

😍 읽어주셔서 감사합니다!
도움이 되셨다면, 💝공감이나 🗨️댓글을 달아주시는 건 어떤가요?
블로그 운영에 큰 힘이 됩니다!
https://blog.itcode.dev/posts/2021/12/19/programmers-a0064