[파이썬 코딩 도장] Unit 19 문제 풀이
업데이트:
19.5 연습 문제 :
다음 소스 코드를 완성하여 역삼각형 모양으로 별이 출력되게 만드세요.
for i in range(5):
for j in range(5):
_________________________________
...
_________________________________
print()
# 결과 :
# *****
# ****
# ***
# **
# *
풀이
if j < i: # 나의 답 : if j > i (삼각형 모양으로 별이 출력)
print(' ', end='')
else:
print('*', end='')
공백이 세로줄에 비례하므로 j가 i보다 작을 때 공백 출력, 같거나 클 때 별을 출력해주어야 한다.
19.6 심사 문제 :
표준 입력으로 삼각형의 높이가 입력됩니다.
입력된 높이만큼 산 모양으로 별을 출력하는 프로그램을 만드세요.
(input에서 안내 문자열은 출력하지 않아야 합니다)
이때 출력 결과는 예제와 정확히 일치해야 합니다.
모양이 같더라도 공백이나 빈 줄이 더 들어가면 틀린 것으로 처리됩니다.
# 입력 : 3
# 결과 :
# *
# ***
# *****
풀이
# 답
h = int(input())
for i in range(h):
for j in reversed(range(h)):
if j > i:
print(' ', end='')
else:
print('*', end='')
for j in range(h):
if j < i:
print('*', end='')
print()
# 나의 답
h = int(input())
for i in range(h):
for j in i * 2: # TypeError: 'int' object is not iterable
if j < i:
print(' ', end='')
else:
print('*', end='')
print()
분명 C언어에서 같은 지문을 봤었던 것 같은데 까먹었다. 위의 에러는 정수형은 순차적인 접근이 불가하다는 의미로 range(i * 2)로 바꿔주면 해결이 되긴 하지만 삼각형으로 출력이 되진 않는다.
왼편과 오른편을 나눠서 생각해야했다.
Notice: 이 게시물은 파이썬 코딩 도장 사이트를 참고하였습니다. https://dojang.io/course/view.php?id=7
댓글남기기