알고리즘/백준

[백준] 2438번 : 별찍기 -1 / 2439번 : 별찍기 -2 (java)

희구 2021. 8. 26. 19:23

문제 2438번 : 별직기 -1

코드

import java.util.Scanner;

public class Main {

	public static void main(String[] args) {
		Scanner scan = new Scanner(System.in);
		int n = scan.nextInt();
		scan.close();
		
	
		for(int i=1; i<=n; i++) {// n줄 출력
			for(int j=1; j<=i; j++) { //각 줄마다 *이 몇개?
				System.out.print("*");
			}
			System.out.println();
		}
		
		
	}

}

 

풀이

for문의 바깥쪽은 안쪽 for문이 다 돌고 나서 한번 돈다.

바깥 for문은 n줄의 열을 출력해주는 반복문이다.

 

안쪽 for문은 한줄에 별이 몇 개 찍힐 지를 정해주는 반복문이다.

1번째 줄이 1개의 별이 찍히고

2번째 줄에 2개의 별이 찍히므로

j<=i 된다.

 


 

문제 2439번 : 별찍기 -2

 

코드

import java.util.Scanner;

public class Main {

	public static void main(String[] args) {
		Scanner scan = new Scanner(System.in);
		int n = scan.nextInt();
		
		for(int i=1; i<=n; i++) {
			for(int j=1; j<=n-i; j++) {	
				System.out.print(" ");
			}
			
			for(int k=1; k<=i; k++) {
				System.out.print("*");
			}
			System.out.println();
		}
	
	}

}

 

풀이

먼저 가장 바깥쪽의 반복문을 짜준다.(n줄 출력하는 반복문)

for(int i=1; i<=n; i++)

 

이 문제는 n=5일때

1째줄에는 공백이 4개 별이 1개

2째줄에는 공백이 3개 별이 2개

3째줄에는 공백이 2개 별이 3개

...

이렇게 구성된다.

 

for(int j=1; j<=n-i; j++) {	
	System.out.print(" ");
}

 

그렇기 때문에 안쪽 for문에는 먼저 n-i개만큼 공백을 출력해준다.

 

for(int k=1; k<=i; k++) {
	System.out.print("*");
}

그러고나서 별도 찍어주어야하니까 이중 for문을 작성한다.

별은 1째줄에 1개 , 2째줄에 2개..n째 줄에 n개가 출력된다.

별의 개수는 i값 만큼 출력된다.

 

 

 

'알고리즘 > 백준' 카테고리의 다른 글

[백준]10951번 : A + B - 4  (0) 2021.08.26
[백준] 10952번 : A + B - 5  (0) 2021.08.26
[백준] for_2741번: N찍기 / 2742 번 기찍N  (0) 2021.08.25
[백준] for_15552번 : 빠른 A+B  (0) 2021.08.25
[백준] for _ A + B - 3 (java)  (0) 2021.08.25