today_is

[ 백준 2444번 ] 별 찍기 - 7 ( java ) 본문

java

[ 백준 2444번 ] 별 찍기 - 7 ( java )

ye_rang 2023. 12. 10. 11:45

문제

예제를 보고 규칙을 유추한 뒤에 별을 찍어 보세요.

입력

첫째 줄에 N(1 ≤ N ≤ 100)이 주어진다.

출력

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

 


입력 예제

5
 

출력 예제

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

 


문제 파악

		
//					공백		별		공백
//		    *			4		1		4		
//		   ***			3		3		3
//		  *****			2		5		2
//		 *******		1		7		1
//		*********		0		9		0
//		 *******		1		7		1
//		  *****			2		5		2
//		   ***			3		3		3
//		    *			4		1		4

 

문제에서도 나와있듯이

 

별찍기는 별과 공백의 개수가 변하는 규칙성에 대해 아는 것이 중요하다 

 

이중 for 문을 이용하여 i는 하나의 "줄"을 담당하고, j는 하나의 "칸"을 담당한다 생각하자. 

 

한 줄(i)마다 각 칸(j)이 어떻게 출력되는지 파악해야한다. 


코드

import java.util.Scanner;

public class Main {
	public static void main(String[] args) {

		
		Scanner sc = new Scanner(System.in);
		
		int count = sc.nextInt();
		
		int sp = (count * 2 - 1) / 2;	// 이때, 별과 공백 변수의 값은 
		int st = 1;		//  초기값으로 초기화해둔다. (== i가 0일때 출력될 별과 공백의 개수) 
		
		for(int i=0; i < count; i++ ) {
			for(int j = 0; j < sp; j++) {
				System.out.print(" ");
			}
			for(int j = 0; j < st; j++) {
				System.out.print("*");
			}
            
			System.out.println();	//	내용이 끝나면, 한 줄 띄우기 
			sp -= 1;
			st += 2;
		}
		
		sp = 1;
		st = (count * 2) - 3;
		for(int i=0; i < count-1; i++ ) { 
			for(int j = 0; j < sp; j++) {
				System.out.print(" ");
			}
			for(int j = 0; j < st; j++) {
				System.out.print("*");
			}

			
			System.out.println();
			sp += 1;
			st -= 2;
		}
		
	}
}

 


 

study_review

 

 

코드를 자꾸 수정하다보니까,

나중에 제출할때는 4중 for문을 만들어서 제출하는 불상사가 생겼다...

 

출력 형식이 잘못됐다고 뜨길래 깜짝 놀랬는데 

다시 보니까 문제점을 바로 파악해서 제출할 수 있었다.

 

 

예전에는 별찍기가 너무 어려웠는데 

확실히 규칙성을 파악한 이후로는 별찍기를 빠르게 풀 수 있게 되었다.

 

모든 문제에는 규칙성이 있고, 그것을 파악해서 

어떻게 코드에 적용하느냐가 제일 어려운듯하다 

 

그래도 같은 유형의 문제를 반복하다 보면 별찍기처럼 어느 순간에 쉽게 느껴지지 않을까 싶다 

 

 

(+)

벌써 백준 문제도 50개 정도 풀었는데 

코드 제출 수에 비하면 맞힌 문제 개수는 .. 너무 적다..

 

 

사실 처음에는 문제 틀리는 게 부끄러워서 틀리면 비공개로 전환할까 고민도 했었는데

나 같은 초보들이 부끄러움을 느낄 자격(?) 이 있나 싶다.

 

모르는 건 문제가 되지 않는다.

모르는 채로 놔두는 것이 제일 큰 문제다. 

 

 

모를수록 당당하게 제출해야겠다 ㅋㅋㅋㅋㅋ

 

 

'java' 카테고리의 다른 글

[ jsp ] 로그인 세션  (0) 2023.12.11
[ 상속 ]  (0) 2023.12.10
[ 백준 3003번 ] 킹, 퀸, 룩, 비숍, 나이트, 폰 ( java )  (0) 2023.12.09
[ jsp ] 단순한 도서 관리  (0) 2023.12.08
[ jsp ] request 와 response 의 내장객체  (0) 2023.12.07