[백준] 2438: 별 찍기 - 1 - JAVA, 자바

xxx-sj·2023년 8월 29일
0

알고리즘

목록 보기
4/46

문제접근

별찍기 같은 문제의 경우 row / col 을 나누어 생각하면 생각보다 쉽게 해결할 수 있다.
대부분의 별찍기 문제를 풀 때 이중 for문으로 접근을 하게된다.
이 때, 바깥 for문은 row에 해당하고, 내부 for문은 col에 해당한다. 다시말해,
바깥 for문은 세로 줄수를 나타내고, 내부 for문은 가로 줄 수를 나타낸다.
이렇게 생각을 한 후 문제를 보자.

예제 출력을 보면 예제 입력5 를 받고, 별5줄을 출력하고 각각의 줄에서는 1개씩 증가하여 별을 출력하였다. 다시말해, 입력받은 N만큼 바깥 For문을 순회하고, 내부에서는 각각의 줄에서 이 전 줄보다 +1 한 별을 출력하고 있다. 이것을 코드로 보면 아래와 같다.

전체코드

    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 = 0; i < N; i++) {
            for(int j = 0; j <= i; j++) {
                System.out.print("*");
            }
            System.out.println();
        }
    }

코드상세

입력받은 N줄 만큼 for loop를 돌면서
*를 찍는다.
별을 찍을 때는 이중 for loop를 이용하여 출력한다.

  • 2중 for loop에서는 i 보다 작거나 같을만큼만 순회한다.
  • 바깥 for loop에서는 개행을 하여 출력한다.
int N = Integer.parseInt(br.readLine());

for(int i = 0; i < N; i++) {
    for(int j = 0; j <= i; j++) {
        System.out.print("*");
    }
    System.out.println();
}
profile
틀려도 일단 기록하자

0개의 댓글