| 문제
"*"의 높이와 너비를 1이라고 했을 때, "*"을 이용하여 직각 이등변 삼각형을 그리려고 합니다.
정수 n이 주어지면 높이와 너비가 n인 직각 이등변 삼각형을 출력하도록 코드를 작성해 보세요.
| 제한 사항
- 1 ≤ n ≤ 10
| 입출력 예
입력 #1
3
출력 #1
*
**
***
| 풀이 1
import java.util.Scanner;
public static void main(String[] args) {
Scanner sc = new Scanner(System.in);
int n = sc.nextInt();
for(int i = 1 ; i <= n ; i++){
for(int j = 1 ; j <= i ;j++){
System.out.print("*");
}
System.out.println("");
}
}
| 풀이 2
import java.util.Scanner;
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));
}
}
| 해설
프로그래머스가 코딩테스트 입문에서 제공한 첫 번째 Scanner 문제입니다.
Java는 백엔드 언어이기 때문에 연산을 수행할 뿐 우리 눈에 결과를 보여주지는 않습니다.
그런데 우리는 사람이기 때문에 눈으로 확인하지 않으면
우리가 의도한 대로 코드가 잘 동작하고 있는지 확인할 길이 없지요.
그래서 Java와 상호작용할 수 있는 여러 가지 기능이 준비되어 있습니다.
대표적인 것이 Scanner(스캐너)입니다.
스캐너는 사용자가 키보드로 입력한 값을 받아올 수 있게 해 줍니다.
그리고 개발자인 우리는 스캐너 덕분에 사용자가 어떤 값을 입력하든
정상적으로 코드가 동작할 수 있도록 다양한 가능성을 고려하면서 개발할 수 있습니다.
프로그래머스는 이 문제를 직각삼각형 출력하기라고 불렀지만,
아주 조금이나마 알고리즘에 대해서 공부해 본 분들은 들어보셨을 거예요.
"*"와 반복문을 활용하여 특정한 모양을 출력하는 문제를 "별 찍기"라고도 부릅니다.
특수기호 *(아스트리크)의 모양이 별처럼 생겨서 그렇게 부른다고 하죠.
이 문제에서는 출력되는 행의 개수와 열의 개수가 같도록 출력하는 문제이고
반대로 출력하는 방법, 크리스마스트리 만들기 등 다양한 별 찍기 문제가 있습니다.
별찍기 문제를 처음 만나면 많이 당황스럽다고 하더라고요.
별 찍기 문제를 만나면 일단 원하는 모양대로 출력하는 출력문을 작성해 보세요.
그리고 코드 속에서 규칙을 찾아봅니다.
표준출력이 3번 반복되고, 그 안에 있는 별이 하나씩 커진다는 사실을 발견할 수 있을 거예요.
System.out.println("*");
System.out.println("**");
System.out.println("***");
'개발 > 개발 공부' 카테고리의 다른 글
[프로그래머스] 코딩테스트 입문 : 문자 반복 출력하기 (4) | 2024.09.04 |
---|---|
[프로그래머스] 코딩테스트 입문 : 짝수 홀수 개수 (12) | 2024.09.04 |
[프로그래머스] 코딩테스트 입문 : 문자열 뒤집기 (0) | 2024.09.02 |
[프로그래머스] 코딩테스트 입문 : 배열 뒤집기 (0) | 2024.09.02 |
[프로그래머스] 코딩테스트 입문 : 나이 출력 (0) | 2024.09.02 |
댓글