[프로그래머스] Lv.0 - 직각삼각형 출력하기
안녕하세요.
오늘은 프로그래머스의 코딩테스트 lv.0 단계 중에 직각삼각형 출력하기를 공부해보겠습니다.
언어는 Java로 구현하였습니다.
문제 설명
"*"의 높이와 너비를 1이라고 했을 때, "*"을 이용해 직각 이등변 삼각형을 그리려고 합니다. 정수 n 이 주어지면 높이와 너비가 n 인 직각 이등변 삼각형을 출력하도록 코드를 작성해보세요.
제한 사항
1 ≤ n ≤ 10
입출력 예
입력 | 출력 |
3 | * ** *** |
문제 풀이
입력된 숫자 n만큼의 높이와 크기인 직각삼각형을 출력하기 위해 이중 반복문을 이용하여 "*"을 출력하도록 구현하였습니다.
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
|
import java.util.Scanner;
public class Solution {
public static void main(String[] args) {
Scanner sc = new Scanner(System.in);
int n = sc.nextInt();
height : for(int i = 0; i < n; i++)
{
width : for(int j = 0; j <= i; j++)
{
System.out.print("*");
}
System.out.print();
}
}
}
|
첫 번째 반복문인 height는 0부터 입력된 숫자 n만큼 반복하여 높이를 출력하였습니다.
두 번째 반복문인 width는 0부터 반복문 height의 i만큼 반복하여 너비를 출력하였습니다.
추가 풀이
위의 방식은 정답이지만 다른 분들의 풀이 중에 반복문을 이중으로 사용하지 않고 구현한 방법이 있어서 공부해보려고 합니다.
1
2
3
4
5
6
7
8
9
10
11
12
13
|
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));
}
}
}
|
자바의 String 메소드 중에 repeat() 함수를 n만큼 반복해서 사용하여 "*"을 출력하였습니다.
사용 함수
- repeat()
- 문자열을 입력된 숫자만큼 반복합니다.
- 자바 11에서 추가된 메소드이므로 11 버전 이상의 버전에서 사용 가능합니다.
마무리 정리
반복문만 사용하여 구현하기 위해서는 이중으로 사용해야 했지만 repeat() 함수를 사용하면 한 번의 반복문으로 구현이 가능했습니다.
repeat() 함수를 사용해보려고 했지만 에러가 발생하여 찾아보니 사용하고 있는 자바의 버전이 11보다 낮은 버전이라서 발생한 에러였습니다. 자바의 버전에 따라 사용 가능한 함수가 다르다는 것을 배울 수 있었습니다.
이상으로 프로그래머스 Lv.0 - 직각삼각형 출력하기 공부를 마치겠습니다.
감사합니다.