본문 바로가기

알고리즘

[백준] 2439번: 별 찍기 - 2(java, python)

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

 

2439번: 별 찍기 - 2

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

www.acmicpc.net


💡 주의 사항

별찍기 1과 마찬가지로 for문 변수 정할 때 유의하기


🗒 풀이

java

import java.util.Scanner;

public class Main {
    public static void main(String[] args) {
        Scanner sc = new Scanner(System.in);
        int num = sc.nextInt();

        for (int i = 1; i <= num; i++) {
            for (int j = 0; j < num - i; j++) {
                System.out.print(" ");
            }
            for (int j = num - i; j < num; j++) {
                System.out.print("*");
            }
            System.out.println();
        }
    }
}
  • 별찍기 1과 흡사한 매커니즘으로, num - i 만큼 공백이 들어감
  • num - i 부터 다시 for문을 만들고, j는 num까지 별을 찍음

 


python

num = int(input())
for i in range(1, num+1):
    print(' ' * (num - i) + '*' * i)
  • java와 매커니즘은 같음
  • 주의할 점은 print 시, + 을 사용하는 것인데, 콤마(,)를 사용해서 출력하게 되면 띄어쓰기가 된다. 때문에 '+'를 사용할 것
print('1', 'a')	# 1 a
print('1' + 'a') # 1a