본문 바로가기
with my rubber duck/codingTest

[프로그래머스]직사각형 별찍기(StringBuilder를 알게되다)

by stilinski 2022. 6. 13.
728x90

너무 쉬운 문제를 골라버렸다

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

    }
}

 

 

StringBuilder를 통해서도 풀 수 있다는 것을 알게 되었다.

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

    }
}

 

문자열을 이어줄 때 String은 불변이라서 생성된 문자열에 붙여 넣는 식으로 해서 붙이는 횟수가 많아질수록 느리다고 한다.

StringBuilder는 mutable이기 때문에 빠르다. 

https://wakestand.tistory.com/245

 

자바 StringBuffer, StringBuilder 개념부터 사용법까지

자바에서 String 외에도 StringBuffer와 StringBuilder가 있는데 보면 뭔 용도로 쓰는지 감이 안올 것이다 append를 이용해서 값을 붙일 수 있다고는 하는데 그건 String도 .concat(값) 혹은 + "값" 을 사용해 붙..

wakestand.tistory.com

너무 정리를 잘해놓으셔서 나중에 헷갈리면 이걸 다시 보면 될 거 같다 ^,^

728x90

댓글