별 찍기

배지원·2022년 10월 17일
0

알고리즘

목록 보기
3/16

For문을 활용한 별찍기

① 직각 삼각형

(1) 분석
1. 사용자에게 라인 개수를 입력받음
2. 라인개수만큼 반복해야함
3. 라인이 넘어갈때마다 1개씩 증가
4. 다형성을 이용하여 원하는 문자 출력

(2) Code

public class Star {
    private char letter = '*';

    public Star() {
    }

    public Star(char letter) {
        this.letter = letter;
    }

    public static void main(String[] args) throws IOException {
        BufferedReader bf = new BufferedReader(new InputStreamReader(System.in));
        Star star = new Star('@');

        int num = Integer.parseInt(bf.readLine());      // 라인 개수 입력 받음

        star.input(num);
    }

    public void input(int num){
        for(int i=0; i<num; i++){           // 입력 받은 라인 개수 만큼 반복
            for(int j=0; j<i+1; j++) {
                System.out.printf("%s ",this.letter);
            }
            System.out.println("");
        }
    }

}

(3) 결과


② 피라미드 삼각형

(1) 분석
1. 사용자에게 라인 개수를 입력받음
2. 라인개수만큼 반복해야함
3. 피라미드 모형이기 때문에 별 찍히기 전까지 공백 추가
4. 라인이 넘어갈때마다 별이 이전 라인보다 2개씩 증가

(2) Code

public class Star2 {
    public static void main(String[] args) throws IOException {
        BufferedReader br = new BufferedReader(new InputStreamReader(System.in));

        int num = Integer.parseInt(br.readLine());

        input(num);
    }

    static void input(int num){
        for(int i=0; i<num; i++){           // 라인 개수만큼 반복
            for(int j = 1; j<num-i; j++){       // 별자리 앞에까지 빈공간 채워넣기
                System.out.print(" ");
            }
            for(int z = 0; z<i*2+1; z++){       // 별 개수를 점점 늘려나감
                System.out.print('*');
            }
            System.out.println();
        }
    }
}

(3) 결과


③ 마름모

(1) 분석
1. 사용자에게 라인 개수를 입력받음
2. 라인개수만큼 반복해야함 이때 절반은 피라미드 삼각형, 절반은 역 피라미드 삼각형
3. 피라미드 모형이기 때문에 별 찍히기 전까지 공백 추가
4. 라인이 넘어갈때마다 별이 이전 라인보다 2개씩 증가

(2) Code

public class Diamond {
    public static void main(String[] args) throws IOException {
        BufferedReader br = new BufferedReader(new InputStreamReader(System.in));

        int num = Integer.parseInt(br.readLine());

        input(num);
    }

    static void input(int num){
        for(int i=0; i<num; i++){
            for(int j=1; j<num-i; j++){
                System.out.print(" ");
            }
            for(int z=0; z<i*2+1; z++){
                System.out.print('*');
            }
            System.out.println();
        }
        for(int i=num-2; i>=0; i--){
            for(int j=1; j<num-i; j++){
                System.out.print(" ");
            }
            for(int z=0; z<i*2+1; z++){
                System.out.print('*');
            }
            System.out.println();
        }
    }
}

(3) 결과

profile
Web Developer

0개의 댓글