[백준] 2438&2439. 별찍기(1-2)(Java)

bonnie·2021년 12월 30일
0

🟢 알고리즘 풀이

목록 보기
4/27
post-thumbnail

문제

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

풀이(별찍기 1)

원하는 숫자를 입력 받은 후, (i=0 →j=0), (i=1 → j=0, 1), (i=2 → j=0, 1, 2), (i=3 → j=0, 1, 2, 3), (i=4 → j=0, 1, 2, 3, 4)
⇒ j가 반복되는 만큼 *이 찍히고 j 반복문을 나올때 마다 \n 을 출력하면 예제출력과 같은 모양으로 완성!

코드(별찍기 1)

import java.util.Scanner;

public class Main {
	public static void main(String[] args) {
		Scanner sc = new Scanner(System.in);
		int n = sc.nextInt();
		
		for(int i = 0; i < n; i++) {
			for(int j = 0; j <= i; j++) {
				System.out.print("*");
			}
			System.out.println();
		}
		sc.close();
	}

풀이(별찍기 2)

첫번째와 마찬가지로 숫자를 먼저 입력을 받는다. 차이점은 j가 i까지가 아니라 고정된 값 n까지라는 것. (사이즈는 고정된 상태에서 공백과 별로 채우는 것)
(i=5 → j=1, 2, 3, 4, 5) ⇒ 1,2,3,4번째 자리에는 공백을 출력, 5번째 자리에는 출력
(i=4 → j=1, 2, 3, 4, 5) ⇒ 1,2,3번째 자리 공백, 4,5번째 자리에는
출력
⇒ 이런식으로 하다보면 예제출력 모양으로 완성할 수 있다.

코드(별찍기 2)

import java.util.Scanner;

public class Main {
	public static void main(String[] args) {
		Scanner sc = new Scanner(System.in);
		int n = sc.nextInt();
		
		for(int i = n; i >= 1; i--) {
			for(int j = 1; j <= n; j++) {
				if(j < i) {
					System.out.print(" ");
				}else {
					System.out.print("*");
				}
			}
			System.out.println();
		}
		sc.close();
	}
}

마무리

이상하게 별찍기는 할 때마다 머리가 리셋되는 기분이다. 예시 모양만 보고도 바로바로 머리 속에서 코드가 그려질 정도로 열심히 연마해야겠다! 반복문의 기본 중에 기본이니까!!!!!!!!!!!!!!!(。・∀・)ノ゙

profile
괴발🐱개발🐶

0개의 댓글