[ 프로그래머스 ] 직각삼각형 출력하기 (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이 발생합니다.
'프로그래머스' 카테고리의 다른 글
[프로그래머스] 순서쌍의 개수(JAVA) (0) | 2025.03.20 |
---|---|
[프로그래머스] 머쓱이보다 키 큰 사람(JAVA) (0) | 2025.03.20 |
[프로그래머스] 특정 문자 제거하기(JAVA) (0) | 2024.03.27 |
[프로그래머스] 중앙값 구하기 (JAVA) (0) | 2024.03.22 |
[프로그래머스] 분수의 덧셈(최대 공약수 구하기 / 유클리드 호제법) (0) | 2024.03.21 |