Algorithm/Baekjoon

[Baekjoon] 백준 2438 별찍기 1 - java

담크 2021. 6. 28. 23:41

오늘은 자바를 처음 시작하고 제일 많이 시도해보고 처음에 제일 어려워했던 별찍기를 해볼건데요 이게 처음에 아무래도 for문이 어떻게 돌아가는지 확실하게 이해하지 못한다면 어려울수있어서 이런건 컴퓨터로도 코딩해보고 손으로도 직접 써가면서 코딩해보는것을 추천드립니다. ㅎㅎ

 

먼저 문제를 보면

혹시 잘 안보이시는 분들은 

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

 

2438번: 별 찍기 - 1

첫째 줄에는 별 1개, 둘째 줄에는 별 2개, N번째 줄에는 별 N개를 찍는 문제

www.acmicpc.net

여기를 참고해주세요~

 


문제풀이

import java.util.Scanner;

public class Main {
	
	public static void main(String[] args) {
		Scanner sc = new Scanner(System.in);
		int a = sc.nextInt();
		
		
		for(int i = 0; i < a; i ++ ) {
			for(int j = 0; j < i + 1; j ++ ) {
				System.out.print("*");
			}
			System.out.println("");
		}
	}

}

 

백준 문제풀이에서는 제일먼저 class 이름이 "Main"인지 확인합니다!!!

(저도 처음에 이거 아무렇게나 썼다가 많이 틀렸습니다.... ㅜㅜ)

 

그리고 이제 for문을 2개 중첩해서 사용을 하는데 이 때 i의 값에 따라서 j의 값이 어떻게 변하는지를 잘 아셔야합니다.

i = 0,   j = 0 i = 0,   j = 1 i = 0,   j = 2 i = 0,   j = 3 i = 0,   j = 4
i = 1,   j = 0 i = 1,   j = 1 i = 1,   j = 2 i = 1,   j = 3 i = 1,   j = 4
i = 2,   j = 0 i = 2,   j = 1 i = 2,   j = 2 i = 2,   j = 3 i = 2,   j = 4
i = 3,   j = 0 i = 3,   j = 1 i = 3,   j = 2 i = 3,   j = 3 i = 3,   j = 4
i = 4,   j = 0 i = 4,   j = 1 i = 4,   j = 2 i = 4,   j = 3 i = 4,   j = 4

결과를 보시면 별이 출력되는 부분은 위의 표에서 색칠된 부분이라고 할 수 있습니다.

 

이제 좀 감이 잡히시나요?

이제 반복문에 맞춰서 별을 순서대로 print로 출력하여 나열하고

반복문이 끝나는 구간에서 println으로 줄 간격을 맞춰주면 

이렇게 5를 입력했을 때 예제 출력같이 잘 나오는것을 확인할 수 있습니다.