별찍기 같은 문제의 경우 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를 이용하여 출력한다.
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();
}