Python/Python 문제풀이

[Python] Python파이썬 기초 문법 문제 풀이_ 조건문 While 구문 실전 문제

꾸꾸집사 2024. 6. 11. 03:16

 

파이썬 기초 문법 공부를 하면서 유익했던 문제, 틀렸던 문제들을 복습+공유할겸 풀이를 해보려고 한다. 🧙

 

문제1

문제: 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에 주의할 것 ! 🧙🧙