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

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

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

나의 풀이

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 각각의 차이

728x90

from http://seongeun-it.tistory.com/200 by ccl(A) rewrite - 2021-09-22 17:27:46