<문제>
height 변수에 별(star)의 층수를 입력하면 각 층마다 별의 개수가 한 개씩 증가하여 출력되고, 마지막 줄에 별의 개수가 출력되도록 함수의 빈 칸을 채우시오.
def StarCount(height):
dataset = range(1, height+1)
tot = 0
for i in dataset:
print('*'*i)
tot += i
return tot
height = int(input('height : '))
print('start 개수 : %d'%StarCount(height))
- while문으로 도전했다가 실패하고 for로 재도전..while문이 왜이렇게 어려운지 모르겠다...(나중에 while문 추가하기)
(그중에서도 더 어려운 별찍기..왼쪽 오른쪽 반전 다 연습해도 다시 하려면 잘 모르겠다.)
- 누적합이 필요한 문제이므로, dataset과 tot값 설정을 해주었다.
그밖에 어려웠던 건 역시 사용자정의함수의 세부 설정 .. 아직 많이 헷갈린다
- return값을 어떤 걸로 하느냐가 중요한 문제..(한참 헤메었다)
- return값을 StarCount로 할 경우, 별이 출력되기는 하지만 합을 구할 수 없었다.
- line 2의 range 값을 (0, n)으로 설정할 경우 별이 찍히는 맨 첫 줄은 공백이 되므로 주의.
- range값 (n,n2)의 n2 는 4를 입력시 3까지 나타나기 때문에 원하는 값까지 출력하려면 +1을 해야 한다.
*참고용으로 첨부하는 주말에 연습한 별찍기 (while을 이용한)
*가운데 정렬은 +2씩 해주는 게 중요하며, f포매팅 설정을 해 줘야 한다!
*가운데 정렬을 input으로 하는 방법은 좀 더 연구가 필요함.....,.,,
*for 로 하면 더 간단한 형태도 가능하다.
#왼쪽 정렬
N = int(input())
star = 0
while star < N:
star += 1
print("*" * star)
#오른쪽 정렬
star = int(input())
while star > 0:
star -= 1
print("*" * star)
#가운데 정렬
star = -1
tot = 0
while star < 11:
star += 2
tot = '*'*star
print(f'{tot:^15}')
#가운데 역순
star = 11
tot = 0
while star > -1:
star -= 2
tot = '*'*star
print(f'{tot:^15}')
'python > 연습문제 풀이' 카테고리의 다른 글
[백준] python 3003번 (0) | 2022.10.18 |
---|---|
[백준] python 10430번 (0) | 2022.10.18 |
(연습문제) 사용자 정의 class (2) | 2022.09.30 |
(연습문제) list 원소 추가 및 요소 검사하기 (0) | 2022.09.02 |
(연습문제) f 문자열 포매팅 (0) | 2022.08.31 |
댓글