본문 바로가기

알고리즘/백준

[2439] 별 찍기 - 2

수행일자 : 2021.07.04


https://www.acmicpc.net/problem/2439

 

2439번: 별 찍기 - 2

첫째 줄에는 별 1개, 둘째 줄에는 별 2개, N번째 줄에는 별 N개를 찍는 문제 하지만, 오른쪽을 기준으로 정렬한 별(예제 참고)을 출력하시오.

www.acmicpc.net


문제

  • 첫째 줄에는 별 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