프로그래머스

[프로그래머스] 직각삼각형 출력하기 (JAVA)

noeul.log 2024. 4. 3. 17:47

 

[ 프로그래머스 ] 직각삼각형 출력하기 (JAVA)

출처 :  https://school.programmers.co.kr/learn/courses/30/lessons/120823

 

프로그래머스

코드 중심의 개발자 채용. 스택 기반의 포지션 매칭. 프로그래머스의 개발자 맞춤형 프로필을 등록하고, 나와 기술 궁합이 잘 맞는 기업들을 매칭 받으세요.

programmers.co.kr

 


문제

"*"의 높이와 너비를 1이라고 했을 때, "*"을 이용해 직각 이등변 삼각형을 그리려고 합니다. 정수 n이 주어지면 높이와 너비가 n인 직각 이등변 삼각형을 출력하도록 코드를 작성해보세요.

 

제한사항

•  1 ≤ n ≤ 10

 

입출력 예

입력 #1 출력 #1
3 *
**
***

 

입출력 예 설명

입출력 예 #1

• n이 3이므로 첫째줄에 * 1개, 둘째 줄에 * 2개, 셋째 줄에 * 3개를 출력합니다.

 


💡 내가 푼 방식(for문 사용)

import java.util.Scanner;

public class Solution {
    public static void main(String[] args) {
        Scanner sc = new Scanner(System.in);
        int n = sc.nextInt();
        
        for(int i=0; i<n; i++){
            for(int j=0; j<i+1; j++){
                System.out.print("*");
            }
            System.out.println();
        }
    }
}

✔️ 'Scanner' 클래스를 사용하여 사용자의 입력을 받기 위해 'java.util.Scanner' 패키지를 import 한다.

✔️ 입력받은 정수에 따라서 이중 for 루프를 통해 별을 출력한다. 외부 루프는 줄 수를, 내부 루프는 각줄에 출력될 별의 개수를 결정한다.     

✔️ 별을 한 줄에 여러 개를 찍는 것은 System.out.print("*");로 개행없이 사용하면되고 다음 줄로 넘어가려면 System.out.println(); 을 사용하여 개행하면 된다.

 

 

🔥 코드 리팩토링(repeat 함수)

import java.util.Scanner;

public class Solution {
    public static void main(String[] args) {
        Scanner sc = new Scanner(System.in);
        int n = sc.nextInt();

        for(int i=1; i<=n; i++){
            System.out.println("*".repeat(i));
        }
    }
}

✔️ 입력받은 각정수에 대해 반복문을 실행하여 해당하는수만큼 별을 출력하고 이중 for문 대신 repeat() 메서드를사용하여 문자열을 반복하여 출력한다.

 

 

⚡  repeat란?

- String 메서드 중 하나로 주어진 횟수만큼 문자열을 반복한 새 문자열을 반환합니다.
- Java11에서 새로 추가된 String 메서드 입니다.
- n이 음수이면 IllegalArgumentException이 발생합니다.