본문 바로가기
Python/코딩테스트

다중반복문 - 모양대로 수 출력하기

by Nanki 2025. 2. 26.

정수 N의 값을 입력받아 다음과 같이 수를 출력하는 프로그램 작성해보기
ex. N이 3를 입력받는 경우
3 2 1
  2 1
    1

 

<정석 풀이>
1. 행과 열이 존재하므로 중첩 for문.
2. 출력 패턴 파악 -> j가 i보다 클경우 숫자 출력 됨.
3. 출력되는 숫자가 큰값에서 작은값으로 감소함.
> 이때 각 행렬의 원소의 자리의 첫 자리를 (0,0)으로 보지않고 (5,5)으로 보기 위해서 
range를 5부터 1씩 감소하게 만든다.
4. j가 i보다 클 경우 공백을, 작을 경우 j를 출력

 

n = int(input())

for i in range(n, 0, -1):
   for j in range(n, 0, -1):
      if j > i:
         print(" ", end=" ")
      else:
         print(j, end=" ")
   print()

 

 

< 내 풀이 >
1. 행과 열이 존재하므로 중첩 for문.
2. 출력 패턴 파악 -> i가 증가할수록 공백자리도 늘어나며 출력값은 n-j-i 값을 가짐

 

for i in range(n) :
    print(end = '  '*i)
    for j in range(n-i) :
        print(n-j-i, end = ' ')
    print()

 

문제 출처 : 코드트리

https://www.codetree.ai/trail-info

반응형