[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

     

    728x90

    '📓 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

    댓글