본문 바로가기
회고

[커널아카데미] 백엔드 12기 1주차 - 회고

by recordari 2025. 3. 29.

자바 기초

중첩 for문 - 모래 시계 모양 별 찍기

이번에 공부한 것 중에 for문을 이용해서 별을 찍는게 가장 기억에 남아 잠깐 적어본다

모래시계형은 위쪽 삼각형과 아래쪽 삼각형을 분리하여 찍어야 한다

가운데를 중심으로 위쪽에서는 별이 점점 줄어들고 아래쪽에서는 별이 점점 많아 진다.

public class SandClock {
        int n = 5; // 모래시계 크기 (항상 홀수)

        // 위쪽 삼각형
        for (int i = 0; i < n / 2 + 1; i++) {
            for (int j = 0; j < i; j++) {
                System.out.print(" "); // 앞쪽 공백
            }
            for (int j = 0; j < n - 2 * i; j++) {
                System.out.print("*"); // 별 출력
            }
            System.out.println();
        }

        // 아래쪽 삼각형
        for (int i = n / 2 - 1; i >= 0; i--) {
            for (int j = 0; j < i; j++) {
                System.out.print(" "); // 앞쪽 공백
            }
            for (int j = 0; j < n - 2 * i; j++) {
                System.out.print("*"); // 별 출력
            }
            System.out.println();
        }
    }

위쪽 삼각형: 공백이 생기고 별이 줄어듦

아래쪽 삼각형: 공백이 줄어들고 별이 많아짐

➡️ 모래 시계 형은 가운데 부분이 별이 한개여야 하기 때문에 항상 홀수여야 한다

위쪽 삼각형: i < n / 2 + 1; 를 통해서 "절반 +1"로 나눈 만큼 반복

아래쪽 삼각형: int i = n / 2 - 1 절반 +1 그 이후부터 반복을 진행

별의 갯수는 2개씩 줄어들기 때문에 j < n - 2 * i; 를 사용하여 별 찍는 갯수를 맞춰준다.

 

회고

오랜만에 별 찍는 것과 같은 자바 문법을 해보려니까 헷갈리거나 어려운 부분들이 있었다. 그 중에 저 모래시계 모양이 어려웠었다. 아마 중첩 for문에서 안에 들어간 for문에서 i를 사용해서 써야 한다는 점을 까먹어서 그런 것 같았다.

앞으로 부트캠프를 진행하면서 공부한 내용을 블로그에 적는 연습을 하는게 목표가 되었다...! 블로그를 쓰는데 시간이 많이 걸리지만 책을 눈으로 보는 것보다 본 것을 정리해서 올리는 것이 머릿속에 더 남을 것이라고 믿고 앞으로도 성실하게 작성해서 기록하는 개발자가 되길 희망한다 :)