정수 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
반응형
'Python > 코딩테스트' 카테고리의 다른 글
다중반복문 - 알파벳 출력하기 (0) | 2025.03.04 |
---|---|
다중반복문 - 정사각 알파벳 출력하기 (0) | 2025.03.04 |
다중반복문 - 숫자로 이루어진 삼각형 (0) | 2025.02.26 |
다중반복문 - 구구단으로 이루어진 직각삼각형 (0) | 2025.02.26 |
다중반복문 - 특이한 출력 (0) | 2025.02.26 |