반응형
이번 문제는 지난번에 풀었던 별찍기의 두번째 문제이다.
지난번에는
3을 입력하면
*
**
***
이런 식으로 점점 늘어났는데, 이번에는
6을 입력하면
*
**
***
****
*****
******
이런 식으로 반대모양의 삼각형이 주어진다.
어떻게 구현하면 될지 가이드라인을 먼저 잡아보자.
for문에 for문을 넣어 사용하면 한 줄씩 출력하기가 가능할 것이다.
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=1;i<=N;i++) {
for(int j=1;j<=N-i;j++) {
System.out.print(" ");
//print(" "); 공백은 N-i번 반복한다.
}
for(int k=0;k<i;k++) {
System.out.print("*");
//print("*"); 별의 개수는 i개 만큼 출력한다.
}
System.out.println();
//print('\n'); 한 행의 출력 끝나면 줄바꿔야한다.
}
}
}
for(int i=1;i<=N;i++) {
for(int j=1;j<=N-i;j++) {
System.out.print(" ");
}
//print(" "); 공백은 N-i번 반복한다.
1. 첫 번째 for문을 N번 반복해서 N개의 줄이 출력되게 만든다.
for(int k=0;k<i;k++) {
System.out.print("*");
}
//print("*"); 별의 개수는 i개 만큼 출력한다.
2. for문 안에 for문을 넣어 (" ")를 적어서 공백을 N-i번 반복 출력하게 만든다.
System.out.println();
//print('\n'); 한 행의 출력 끝나면 줄바꿔야한다.
3. for문을 사용해서 ("*")를 적어 *을 각 줄에서 i개 만큼 출력하게 만든다.
여기서 조심해야 할 것은 println()을 사용하는 것이 아니라, print() 메서드를 사용해야 하는 것이다.
이 때 하나 더 중요한 것은 한 행의 출력이 끝나면 줄을 바꿔야 한다. 첫 번째 for문이 한번 끝날 때 줄을 바꿔야 하니
마지막부분에 System.out.println();을 넣어 print( '\n' ); 의 기능을 넣으면 된다.
별 찍기가 몇개 있는 것 같은데, 잘 정립하고 다시 풀어서 for문 마스터하자.
자바 파이팅 ㅠㅠ
반응형
'백준 알고리즘' 카테고리의 다른 글
백준 [10871] X보다 작은 수 - 자바 (0) | 2023.05.11 |
---|---|
백준 15552번 빠른 A+B 자바 (0) | 2023.05.09 |
백준 10951번 자바 JAVA 풀이 (0) | 2023.05.07 |
백준 10171번 자바 JAVA 풀이 (0) | 2023.04.16 |
백준 11382번 자바 JAVA 풀이 (0) | 2023.04.16 |