문제
삼각형의 높이 n과 종류 m을 입력 받은 후 다음과 같은 삼각형 형태로 출력하는 프로그램을 작성하시오.

입력형식
첫째 줄에 A 둘째 줄에 B 셋째 줄에 C가 주어진다.
A B C는 모두 100보다 같거나 크고 1 000보다 작은 자연수이다.삼각형의 크기 n(n의 범위는 100 이하의 자연수)과 종류 m(m은 1부터 3사이의 자연수)을 입력받는다.
출력형식
첫째 줄에는 A×B×C의 결과에 0 이 몇 번 쓰였는지 출력한다.
마찬가지로 둘째 줄부터 열 번째 줄까지 A×B×C의 결과에 1부터 9까지의 숫자가 각각 몇 번 쓰였는지 차례로 한 줄에 하나씩 출력한다.
위에서 언급한 3가지 종류를 입력에서 들어온 높이 n과 종류 m에 맞춰서 출력한다.
입력된 데이터가 주어진 범위를 벗어나면 "INPUT ERROR!"을 출력한다.
입력 예
3 2
출력 예
***
**
*
입력 예
200 3
출력 예
INPUT ERROR!
코드
import java.util.Scanner;
public class Main {
public static void main(String[] args) {
Scanner sc = new Scanner(System.in);
int n = sc.nextInt(); // 삼각형의 높이
int m = sc.nextInt(); // 삼각형의 종류
for (int i = 0; i < n; i++) { // 0 1 2 3 4
if (n > 100 || m < 1 || m > 3) {
System.out.println("INPUT ERROR!");
break;
}
if (m == 1) {
for (int j = 0; j < i + 1; j++) { // 1 2 3 4 5
System.out.print("*");
}
System.out.println();
}
if (m == 2) {
for (int j = 0; j < n - i; j++) { // 5 4 3 2 1
System.out.print("*");
}
System.out.println();
}
if (m == 3) { // 1 3 5 7 9
// 공백 4 3 2 1 0
for (int j = 1; j < n - i; j++) {
System.out.print(" ");
}
for (int k = 0; k < i * 2 + 1; k++) {
System.out.print("*");
}
System.out.println();
}
}
}
}
▷ INPUT ERROR! 처리를 for문 가장 앞쪽에 해서 걸러준 이후, m=1,2,3인 경우의 코드를 수행해줘야함. 그렇지 않으면, 별이 출력된 후 오류 문구가 나올 수 있음
'Algorithm > JUNGOL' 카테고리의 다른 글
[정올] 1329 : 별삼각형3 (0) | 2022.01.21 |
---|---|
[정올] 1719 : 별삼각형2 (*) (0) | 2022.01.21 |
[정올] 1002 : 최대공약수, 최소공배수 (0) | 2022.01.20 |
[정올] 1658 : 최대공약수와 최소공배수 (0) | 2022.01.20 |
[정올] 2809 : 약수 (0) | 2022.01.20 |