Unit 19
19.5 연습 문제 ▶ 다음 소스 코드를 완성하여 역삼각형 모양으로 별이 출력되게 만드세요.
# 결과
# *****
# ****
# ***
# **
# *
# for i in range(5):
# for j in range(5):
# ____________
# print()
# 정답
for i in range(5):
for j in range(5):
if j < i:
print(' ', end='')
else:
print('*', end='')
print()
바깥쪽 루프로 시작하여 안쪽 루프가 가로 방향으로 j 값을 출력하는 방식입니다.
윗부분이 넓고 아래로 갈수록 좁아지는 삼각형 모양인데 공백 부분이 하나씩 늘어나고 있습니다.
if j < i:와 같이 작성하여 가로 방향으로 공백을 출력할 때는 세로 방향의 변수 i보다 작을 때까지 출력하고,
반대되는 조건에서는 별을 출력하도록 하여 세로로 내려갈수록 공백이 늘어나도록 해줍니다.
19.6 실습 문제 ▶ 표준 입력으로 삼각형의 높이가 입력됩니다.
입력된 높이만큼 산 모양으로 별을 출력하는 프로그램을 만드세요
(input에서 안내 문자열은 출력하지 않아야 합니다). 이때 출력 결과는 예제와 정확히 일치해야 합니다.
모양이 같더라도 공백이나 빈 줄이 더 들어가면 틀린 것으로 처리됩니다.
# 입력 : 3
# 결과
# *
# ***
# *****
a = int(input())
i = a-1 # 빈칸 = 높이 수-1
for i in range(a): # 세로 방향
for j in range(a + i): # 가로 방향
if j < i:
print(' ', end = '')
else:
print('*', end = '')
print() # 다음 줄로 넘어감
i -= 1 # 밑으로 갈 수록 공백이 하나씩 줄어듦
# a = int(input())
# for i in range(a):
# for j in range(a-i-1):
# print(' ',end='')
# for j in range(2*i+1):
# print('*',end='')
# print()
가로 방향 반복문은 for j in range(a):로 range에서 생성되는 마지막 숫자가 지정된 숫자보다 1이 더 작습니다.
end = '' 를 지정하여 줄바꿈을 하지 않도록 해줍니다.
조건식을 j < i와 같이 작성하여 가로 방향( j )의 변수가 세로 방향( i )의 변수보다 작을 때 출력하여
i가 증가할 때마다 별이 늘어날 수 있도록 만듭니다.
j가 i보다 작을 때만 출력하므로 첫 번째 줄은 출력하지 않습니다.
참조 : https://dojang.io/course/view.php?id=7
'python' 카테고리의 다른 글
1. 기초 - 출력 (코드업 기초 100제) (0) | 2022.01.23 |
---|---|
Unit 20 문제 풀이 (0) | 2022.01.15 |
Unit 18 문제 풀이 (0) | 2022.01.15 |
Unit 17 문제 풀이 (0) | 2022.01.15 |
Unit 16 문제 풀이 (0) | 2022.01.15 |