코딩테스트/JAVA
[JAVA/백준 2443번] 별 찍기 - 6
할루솔이
2023. 10. 13. 19:49
반응형
https://www.acmicpc.net/problem/2443
2443번: 별 찍기 - 6
첫째 줄에는 별 2×N-1개, 둘째 줄에는 별 2×N-3개, ..., N번째 줄에는 별 1개를 찍는 문제 별은 가운데를 기준으로 대칭이어야 한다.
www.acmicpc.net
문제
첫째 줄에는 별 2×N-1개, 둘째 줄에는 별 2×N-3개, ..., N번째 줄에는 별 1개를 찍는 문제
별은 가운데를 기준으로 대칭이어야 한다.
입력
첫째 줄에 N(1 ≤ N ≤ 100)이 주어진다.
출력
첫째 줄부터 N번째 줄까지 차례대로 별을 출력한다.
예제 입력 1
5
예제 출력 1
*********
*******
*****
***
*
👉 풀이과정
1. 처음 공백은 출력되지 않기 때문에 조건을 j < i로 설정한다.
2. 조건에서 1, 3, 5, ...이렇게 홀수로 숫자가 변경되어야 하기 때문에 변수를 선언한다.
3. 만약 5를 입력했을 경우, 처음부터 별 2×N-1개가 모두 출력되어야 하기 때문에 j < num - a로 한다.
4. 반복문이 끝나면 a + 2를 한다.
📌 제출코드
import java.util.Scanner;
public class Main {
public static void main(String[] args) {
Scanner scan = new Scanner(System.in);
//별
int num = scan.nextInt();
char star = '*';
char blank = ' ';
int a = 1;
for(int i=1;i<=num;i++){
//공백
for(int j=1;j<i;j++) {
System.out.print(blank);
}
//별
for(int j=0;j<2*num-a;j++){
System.out.print(star);
}
a += 2;
System.out.println();
}
}
}
a처럼 변수를 따로 설정하는 것 말고 다른 방법이 있을 것 같은데.. 오늘은 머리가 굳었나보다..^_ㅠ
반응형