이 문제에는 표준 입력으로 두 개의 정수 n과 m이 주어집니다.
별(*) 문자를 이용해 가로의 길이가 n, 세로의 길이가 m인 직사각형 형태를 출력해보세요.
제한 조건
n과 m은 각각 1000이하인 자연수입니다.
내가 푼 풀이
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 (int j = 0; j < a; j++) {
System.out.print("*");
}
System.out.println();
}
}
}
for문을 이용 print를 사용해 개행을 하지 않고 *을 a만큼 옆으로 출력하고 b만큼 개행을 해주었다.
StringBuilder와 IntStream을 활용한 풀이
import java.util.Scanner;
import java.util.stream.IntStream;
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()));
}
}
StringBuilder 객체를 생성하여 별표 문자열을 효율적으로 구성하고
- 첫 번째 IntStream.range(0, a)는 0부터 a-1까지의 정수 스트림을 생성하여 별표 문자열을 만든다.
- 두 번째 IntStream.range(0, b)는 0부터 b-1까지의 정수 스트림을 생성하여 별표 문자열을 b번 출력한다.
'오늘의 코딩 테스트' 카테고리의 다른 글
오늘의 코딩 테스트 (3진법 뒤집기) (0) | 2025.03.13 |
---|---|
오늘의 코딩테스트 (최대공약수와 최소공배수) (0) | 2025.03.11 |
오늘의 코딩 테스트( 문자열 다루기 기본) (0) | 2025.02.27 |
오늘의 코딩 테스트(부족한 금액 계산하기) (0) | 2025.02.26 |
오늘의 코딩 테스트(문자열 내림차순으로 배치하기) (1) | 2025.02.25 |