문제: 첫째 줄에는 별 2×N-1개, 둘째 줄에는 별 2×N-3개, …, N번째 줄에는 별 1개를 찍는 문제. 별은 가운데를 기준으로 대칭이어야 한다.
입력: 첫째 줄에 N(1 ≤ N ≤ 100)이 주어진다. 출력: 첫째 줄부터 N번째 줄까지 차례대로 별을 출력한다.
입력예시: 5 출력예시: ********* ******* ***** *** *
만들어야 되는 것
빈칸: 0->1->2->3->4 (1씩 늘어남 == i씩 늘어남) 별: 9 -> 7 -> 5 -> 3 -> 1 2n-1 2n-2-1 2n-4-1 2n-6-1 2n-8-1 =>2n-2i-1 ==2(n-i)-1 n=5 i= 0 1 2 3 4
import java.io.BufferedReader;
import java.io.IOException;
import java.io.InputStreamReader;
public class Main {
public static void main(String[] args) throws IOException {
BufferedReader br = new BufferedReader(new InputStreamReader(System.in));
int num = Integer.parseInt(br.readLine());
br.close();
StringBuilder sb = new StringBuilder();
for (int i = 0; i <= num; i++) {
for (int j = 0; j < i; j++) {
sb.append(" ");
}
for (int k = 1; k <= 2*(num-i)-1; k++) {
sb.append("*");
}
sb.append("\n");
}
System.out.print(sb);
}
}
흐름
- BufferedReader를 사용해 숫자(num)를 입력받음
- for문을 사용해 num만큼 반복
- 빈칸 입력 for문 (0부터 i보다 작게 반복)
- 별 입력 for문 (k는 1부터 시작해서 2(n-i)-1까지 반복
PREVIOUS[JAVA] 문자열 체크