[Programmers/JAVA] 직사각형 별찍기

https://programmers.co.kr/learn/courses/30/lessons/12969

 

코딩테스트 연습 - 직사각형 별찍기

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

programmers.co.kr

 

나의 풀이

import java.util.Scanner;

public 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=1; i<=b;i++){
            for(int j=1; j<=a;j++){
                 System.out.print("*"); 
            }
            System.out.println();
        }
        
    }
}

 

 

다른 코드는 없을까?

 

다른 분들은 어떻게 풀었는지 궁금해서 찾아봤는데, 마침 어제 배운 StringBuilder에 대한 코드가 있어서 가져와봤다.

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()));
    }
}

 

StringBuilder는 같은 인스턴스 안의 문자열에 필드 값을 추가하거나 변경이 가능하다고 한다.

String 클래스의 메소드 뿐만 아니라 문자열 추가 혹은 변경을 위한 추가 메소드를 가지고 있는데,

그 중 하나가 append()이다. append()는 문자열을 뒤로 추가해 나가는 메소드이다!

 

그 전의 코드보다 속도와 메모리 측면에서 성능이 더 좋아졌다.

 

 

 

String, StringBuilder, StringBuffer 각각의 차이

 

String, StringBuilder, StringBuffer 각각의 차이에 대해 설명해주세요.

String, StringBuilder, StringBuffer은 자바에서의 문자열 처리에 가장 많이 사용되는 세 클래스입니다. 불변성 String 클래스 특징 - 문자열 처리 및 관리하는 클래스 - immutable(불변성)의 특징이 있어 문자.

seongeun-it.tistory.com

 

'📓 Study > Coding Test' 카테고리의 다른 글

[Programmers/JAVA] 평균 구하기  (0) 2021.09.24
[Programmers/JAVA] 핸드폰 번호 가리기  (0) 2021.09.23
[Programmers/JAVA] 짝수와 홀수  (0) 2021.09.21
[BOJ] 10817 | 세 수  (0) 2021.09.19
[BOJ] 2438번 별찍기  (0) 2021.09.12

댓글