문제 풀이

[백준] 2444번: 별 찍기 - 7 - JAVA (자바)

auyeol 2023. 8. 6. 11:06
728x90

 

문제

 

 

https://www.acmicpc.net/problem/2444

 

2444번: 별 찍기 - 7

첫째 줄부터 2×N-1번째 줄까지 차례대로 별을 출력한다.

www.acmicpc.net

 

숫자 N을 입력받은 뒤, 2 x N-1 줄까지 주어진 형식대로 별을 출력하는 문제이다.

 

 

입력								
5

출력

    *
   ***
  *****
 *******
*********
 *******
  *****
   ***
    *

 

 

------------------------------------------------------------------------------------------------------------------

 

풀이

 

별 찍기 하면서 4가지 경우만 풀어봐서 그림과 같이 크게는 2등분, 전체적으로는 4등분해서 풀었다. 처음부터 맞추진 않고 틀린 부분을 찾으면서 바꾸는 노가다로 풀어서 코드가 난잡하게 보일 수도 있을 것 같다.

 

 

파란색 선을 기준으로 크게 for문을 2개 만들었다.

 

2개의 for문 안에 3개의 for문을 사용하여 빨간색 선 기준 왼쪽과 오른쪽을 만들었다.

 

 

 

 

 

 

 

 

 

import java.util.Scanner;

public class Main {
	public static void main(String[] args) {
		Scanner sc = new Scanner(System.in);
		
		int n = sc.nextInt();
		int i,j,k,l;
		sc.close();
		
		for(i=0;i<n;i++) { // 파란색 선 위쪽 
			for(j=i+1;j<n;j++) {
				System.out.print(" ");
			}
			for(k=i;k>=0;k--) { // 빨간색 선 왼쪽
				System.out.print("*");
			}
			for(l=i;l>0;l--) { // 빨간색 선 오른쪽
				System.out.print("*");
			}
			System.out.println();
		}
		for(i=1;i<n;i++) { // 파란색 선 아래쪽
			for(j=i;j>0;j--) {
				System.out.print(" ");
			}
			for(k=i;k<n;k++) { // 빨간색 선 왼쪽
				System.out.print("*");
			}
			for(l=i+1;l<n;l++) { // 빨간색 선 오른쪽
				System.out.print("*");
			}
			System.out.println();
		}
	}
}

 

 

728x90