수행일자 : 2021.07.04
https://www.acmicpc.net/problem/2439
문제
- 첫째 줄에는 별 1개, 둘째 줄에는 별 2개, N번째 줄에는 별 N개를 찍는 문제
- 하지만, 오른쪽을 기준으로 정렬한 별(예제 참고)을 출력하시오.
입력
- 첫째 줄에 N(1 ≤ N ≤ 100)이 주어진다.
출력
- 첫째 줄부터 N번째 줄까지 차례대로 별을 출력한다.
입출력 예제
Scanner 를 사용해서 풀어보려고 한다.
총 3개의 for문이 필요하다.
- 입력받는 N만큼 수행하며 한 줄이 끝났을 시에 라인을 넘겨주는 for 문
- 1부터 입력받은 수의 -1 만큼 돌며 공백을 출력하는 for문
- * 을 출력하는 for문
입력받은 수만큼 도는 for문의 기본틀을 작성한 다음에는 공백과 * 을 찍는 for문을 작성해야 한다.
공백은 1부터 입력받은 수 -1 만큼 루프를 돌려야 하는데, * 을 찍을 공간을 위해서 N-1을 해주는 것이다.
- 예를 들어 공백 for문을 A , * for문을 B 라고 했을 때에 2를 입력받는다고 하면 A는 1~1까지 돌아서 처음에 딱 한 자리만 차지하게 되고 B는 0~1까지 돌아서 두 자리를 차지하게 된다.
- 여기에서 A가 먼저 작성되어 있으므로 공백이 일정횟수만큼 수행된 후에 *를 일정 횟수만큼 찍는다.
이를 위해 입력받은 수 만큼 도는 for 문의 안에 A,B를 따로 작성한 것이다.
답안 소스
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(" ");
}
for(int z=0; z<i; z++) {
System.out.print("*");
}
System.out.println();
}
}
}
'알고리즘 > 백준' 카테고리의 다른 글
[10952]A + B -5 (0) | 2021.07.11 |
---|---|
[10871]X 보다 작은 수 (0) | 2021.07.10 |
[2438]별 찍기 - 1 (0) | 2021.07.03 |
[11022]A+B - 8 (0) | 2021.06.30 |
[11021]A+B - 7 (0) | 2021.06.28 |