Java/백준알고리즘

백준알고리즘 #10996 별 찍기 -21 java

Sehyeok20 2020. 3. 30. 04:55
반응형

백준알고리즘 #10996 별 찍기-21 (1)
백준알고리즘 #10996 별 찍기-21 (2)

먼저 규칙을 찾아보자. 2일때는 4줄 3일땐 6줄 4일땐 8줄 이므로 n일때 2n줄이 나오게 된다.

그리고 줄 뿐 아니라 칸수도 하나씩 증가하게 된다. 2일땐 2칸, 3일때 3칸... 이런식으로 말이다.

이 때 각 줄에서는 간단한 규칙을 찾아볼 수 있는데 홀수 줄에서 홀수 칸은 *, 짝수 칸은 빈칸. 짝수 줄에서는 반대로 이루어져 있다. 이것을 코드로 나타내

import java.util.Scanner;

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

		}
	}
}

n을 입력받았을 때 2n만큼의 줄이 생성되므로 for문 안에 for문을 2개 만들었다.
여기서 첫번째 for문은 홀수 줄에 대한 것. 홀수 줄은 홀수칸만 *이 찍히므로 j%2 ==1 일 때만 *을 출력하도록 한다.
두번째 for문에서는 짝수 줄을 다루므로 짝수 칸만 *이 찍히도록 j%2==0 일 때만 *을 출력하도록 한다.

반응형