Python/Python 문제풀이
[Python] Python파이썬 기초 문법 문제 풀이_ 조건문 While 구문 실전 문제
꾸꾸집사
2024. 6. 11. 03:16
파이썬 기초 문법 공부를 하면서 유익했던 문제, 틀렸던 문제들을 복습+공유할겸 풀이를 해보려고 한다. 🧙
문제: while문을 이용하여 아래와 같이 출력해보세요.
*******
*****
***
*
이 문제는 조건문을 배우면 무조건 하는 전통적인(?) 문제라고 한다! 그러나 나한테는 너무나도 낯선것...😭😭
문제를 풀기 전에 파악할 점✅
1. 별의 개수 7 > 5 > 3 > 1 ==> 홀수로 떨어진다! , 0보다 작아지지 않는다.
2. 공백의 수 0 > 1 > 2 > 3 ==> 한쪽의 공백의 수는 1씩 커지는 구나 !
이 정도는 파악해두고 문제풀이에 들어가는게 좋겠다!
i=8
while i>0:
i -= 1
if i % 2 == 1:
print('*'*i)
공백의 수를 감안하지 않고 별(*) 먼저 주어진 개수대로 출력한 코드이다!
변수 i 에 마이너스 할당을 해서 1씩 줄어들게 만든 다음,
if 조건문으로 변수 i가 홀수면 print ( 별 * i) 하게 만든다!
결과는
*******
*****
***
*
양쪽 공백이 해결되지 않은 상황이다. 공백 해결은 어떻게 하는게 좋을까?
규칙을 찾아보자
별이 i=7개 일 때 공백 0
별이 i=5개 일 때 공백 1
별이 i=3개 일 때 공백 2
별이 i=1개 일 때 공백 3
이 규칙을 통해
공백 = (7-i) / 2 라는 공식을 만들 수 있겠다!
blank = (7-i) / 2
i=8
while i>0:
i -= 1
if i % 2 == 1:
blank = int((7-i)/2)
print(' '*blank, '*'*i, ' '*blank)
이렇게 blank 를 이용해 공식을 마무리 해주면
우리가 원하는 결과가 출력된다!
조건문을 쓸 때는 항상 indent에 주의할 것 ! 🧙🧙