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

⏰ 2021-12-19 (일) 16:18:31

screener
시리즈 모아보기
프로그래머스

64 / 78

Table of Contents

  • 1. 직사각형 별찍기








직사각형 별찍기

랭크사용 언어
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();
	}
}

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

읽어주셔서 고마워요!

도움이 되셨다면, 공감이나 댓글을 달아주시는 건 어떤가요?

블로그 운영에 큰 힘이 됩니다.

https://hits.seeyoufarm.com/api/count/incr/badge.svg?count_bg=%23484848&icon=react.svg&icon_color=dodgerblue&title=view&title_bg=%23242424&url=https%3A%2F%2Fblog.itcode.dev%2Fposts%2F2021%2F12%2F19%2Fprogrammers-a0064