문제 2438번 : 별직기 -1
코드
import java.util.Scanner;
public class Main {
public static void main(String[] args) {
Scanner scan = new Scanner(System.in);
int n = scan.nextInt();
scan.close();
for(int i=1; i<=n; i++) {// n줄 출력
for(int j=1; j<=i; j++) { //각 줄마다 *이 몇개?
System.out.print("*");
}
System.out.println();
}
}
}
풀이
for문의 바깥쪽은 안쪽 for문이 다 돌고 나서 한번 돈다.
바깥 for문은 n줄의 열을 출력해주는 반복문이다.
안쪽 for문은 한줄에 별이 몇 개 찍힐 지를 정해주는 반복문이다.
1번째 줄이 1개의 별이 찍히고
2번째 줄에 2개의 별이 찍히므로
j<=i 된다.
문제 2439번 : 별찍기 -2
코드
import java.util.Scanner;
public class Main {
public static void main(String[] args) {
Scanner scan = new Scanner(System.in);
int n = scan.nextInt();
for(int i=1; i<=n; i++) {
for(int j=1; j<=n-i; j++) {
System.out.print(" ");
}
for(int k=1; k<=i; k++) {
System.out.print("*");
}
System.out.println();
}
}
}
풀이
먼저 가장 바깥쪽의 반복문을 짜준다.(n줄 출력하는 반복문)
for(int i=1; i<=n; i++)
이 문제는 n=5일때
1째줄에는 공백이 4개 별이 1개
2째줄에는 공백이 3개 별이 2개
3째줄에는 공백이 2개 별이 3개
...
이렇게 구성된다.
for(int j=1; j<=n-i; j++) {
System.out.print(" ");
}
그렇기 때문에 안쪽 for문에는 먼저 n-i개만큼 공백을 출력해준다.
for(int k=1; k<=i; k++) {
System.out.print("*");
}
그러고나서 별도 찍어주어야하니까 이중 for문을 작성한다.
별은 1째줄에 1개 , 2째줄에 2개..n째 줄에 n개가 출력된다.
별의 개수는 i값 만큼 출력된다.
'알고리즘 > 백준' 카테고리의 다른 글
[백준]10951번 : A + B - 4 (0) | 2021.08.26 |
---|---|
[백준] 10952번 : A + B - 5 (0) | 2021.08.26 |
[백준] for_2741번: N찍기 / 2742 번 기찍N (0) | 2021.08.25 |
[백준] for_15552번 : 빠른 A+B (0) | 2021.08.25 |
[백준] for _ A + B - 3 (java) (0) | 2021.08.25 |