백준 2441번: 별 찍기

문제 설명

  • ◥모양으로 *를 출력하는 문제입니다.

접근법

  • ◥모양은 다음의 특징을 가지고 있습니다.
    • 아래로 갈수록 검은색이 줄어듭니다.
    • 우측정렬 되어있습니다.
  • 파이썬에서는 f-string으로 우측정렬을 구현할 수 있습니다.
    • f-string은 기존의 print("문자열")에서 따옴표 앞에 f를 추가한 모습입니다.
      • print(f"문자열")
    • f-string에서는 {}속 문자를 변수로 인식합니다. answer = 5를 위에서 선언했다면
      • print("{answer}입니다.")는 {answer}입니다.를 출력하지만
      • print(f"{answer}입니다.")는 5입니다.를 출력합니다.
    • %를 이용해 다음과 같이 표현할 수도 있습니다.
      • print(f"%d입니다."%5)는 5입니다.를 출력합니다.
    • ""속 %d와 %s는 뒤에 있는 값이 들어올 공간입니다라는 뜻입니다.
    • 여기서 말하는 뒤에 있는 값은 ""가 끝나고 나오는 %뒤에 있는 값입니다.
    • %d%s 사이에는 %5d, %-3s처럼 숫자가 들어갈 수 있습니다. 숫자만큼의 공간을 잡고 오른쪽부터 값을 넣어라는 의미입니다.
      • print(f"%7s입니다."%"바보")의 결과는 ㅤㅤㅤㅤㅤ바보입니다.입니다.
      • 총 7칸의 공간 중 왼쪽부터 '바보'를 채워넣었고 그 결과 5칸의 빈칸이 공간을 차지하고 있습니다.

정답

N = int(input())
for i in range(N):
    star ="*"*(N-i) #i번째에서 사용될 별입니다(i번째 줄에는 N-i개의 별이 사용됩니다)
    print(f"%{N}s"%star) #N개의 공간을 먼저 차지한 뒤 오른쪽부터 별을 찍습니다

좋은 웹페이지 즐겨찾기