study/algorithm

[알고리즘] 별 찍기1 - 백준 2438번

박허디 2024. 6. 18. 14:07

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

 

반복문의 가장 유명한 별 찍기 문제

 

기본적으로 알아야 할 것은 아래와 같다.

먼저 N 이라는 숫자를 주어준다

1행부터 N행까지 출력하기 위한 큰 틀의 반복문을 만들어준다.

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

행을 의미하는 i를 만들어 준 것이다.

 

이어서 for문 안에 for문을 넣어 이중 for문을 작성해 준다.

for(int i = 1; i <= N; i++){
	for(int j =1; j<=i; j++){
    
   }
 }

 

내부 for문의 j는 i의 값만큼 반복해 준다.

 

i는 행을 만들어주는 횟수를 

j는 별을 찍는 개수를 만들어준다고 생각하면 된다.

또 한 행의 출력이 모두 끝나면 개행을 해주어야 되니

내부 for문이 종료될 때마다 개행을 해줄 수 있도록 해준다.

 

for ( int i = 1 ; i <= N ; i++ ){
	for( int j = 1 ; j <= i ; j++ ) {
		print("*");
	}
	print('\n'); // 줄바꿈
    //System.out.println();
}

 

위와 같은 방식으로 별 찍기를 진행할 수 있으므로

백준 문제는 위의 코드를 응용해서 작성할 수 있다.

 

import java.io.BufferedReader;
import java.io.InputStreamReader;
import java.io.IOException;
 
public class Main {
 
	public static void main(String[] args) throws IOException {
        
        BufferedReader br = new BufferedReader(new InputStreamReader(System.in));
        
        int N = Integer.parseInt(br.readLine());
        
        for(int i=1; i<=N; i++){
            for(int j=1; j<=i; j++){
                System.out.print("*");
           }
            System.out.println();
     }

}