반응형
문제 해석
- 임의의 숫자를 입력해 입력한 숫자만큼의 줄까지 별을 출력해야 한다.
- 별의 개수는 한개씩 늘어난다.
- 공백의 개수 + 별의 개수 = 입력한 임의의 숫자이다.
문제 풀이
1. 스캐너를 사용해 임의의 숫자 값을 입력받는다.
Scanner sc = new Scanner(System.in);
int a = sc.nextInt();
2. 선언값을 외부에 입력해 전역변수로 사용할 수 있게 한다.
int i,j,k;
3. 입력한 임의의 수 (a) 줄만큼 반복하는 for 문
만약 a가 5라면, i = 5,4,3,2,1로 5번 반복한다.
for (i = a; i > 0; i--) {
...
}
4. 공백 출력하기.
별은 1부터 시작하니 k는 a - 1부터 시작해야한다. a = i이니, i가 하나씩 늘어나기 때문에 k = i-1부터 시작하며 하나씩 줄어든다. 공백 또한 1까지 지속되니 공백은 0 이상까지 진행되어야 한다.
a 에 5를 입력했을 때, 예시로 보아 공백은 4개가 된다.
for (k = i-1; k > 0 ; k--) {
System.out.print(" ");
}
5. j는 하나씩 증가한다. j의 경우에 a = k + j 가 되어야 한다. j = a - k 가 된다. a = i, k = i -1 이기 때문에 j = a - i + 1이 된다.
for (j = 0; j < a-i+1; j++) {
System.out.print("*");
}
package augustW1;
import java.util.Scanner;
public class B2439 {
public static void main(String[] args) {
Scanner sc = new Scanner(System.in);
int a = sc.nextInt();
int i,j,k;
for (i = a; i > 0; i--) {
for (k = i-1; k > 0 ; k--) {
System.out.print(" ");
}
for (j = 0; j < a-i+1; j++) {
System.out.print("*");
}
System.out.println();
}
}
}
반응형