python practice(star)
9번째 포스팅
8월 14일,15일 이렇게 이틀정도 포스팅을 하지 못했는데,주말에도 되도록 하려고 노력을 하겠습니다…..
저번 포스팅에서 풀었던 문제들을 포스팅하겠다고 했는데 오늘 한번 포스팅 해보겠습니다.
python star
파이썬을 시작하게되면 얼마 안가 알고리즘 문제들을 풀게 될텐데 오늘은 그것중 하나인 별찍기 라는 문제를 풀어보겠습니다.
간단합니다.반복문을 이용하여 원하는 모양으로 별을 찍으시면 되는데 일단 오늘은 속이 빈 삼각형을 만들어 보는걸로 하겠습니다.
*
* *
* *
* *
*********
위를 보시면 별로 삼각형을 만들었는데 위와같이 코드를 짜서 똑같이 만들어 주시면 됩니다.반복문을 이용해야합니다.
자 그럼면 우리는 일단 무엇을 먼저 해야할까요?
일단 저 별을 만드려면 차근차근 스텝 바이 스텝 으로 접근하면 됩니다.
*****
*****
*****
*****
*****
일단 이런 직사각형모양을 찍어봅시다.
for i in range(5):
for va in range(5):
print("*", end="")
print()
이렇게만 하면 되겠죠?
반복문으로 가로 5번 세로 5번 별을 찍어주면 됩니다.
그다음은 저별을 밀어낼겁니다.
*****
*****
*****
*****
*****
위의 사진처럼요 .
이렇게 하려면 반복문을 하나 더 넣어서 공백을 출력해보도록 하겠습니다.
for i in range(5):
for j in range(4-i):
print(" ", end="")
for va in range(5):
print("*", end="")
print()
반복문을 추가해 공백을 출력하여 별을 밀수가 있었습니다.
이다음은 별출력의 개수를 바꿔주면 됩니다.
for i in range(5):
for j in range(4-i):
print(" ", end="")
for va in range(i+1):
print("*", end="")
print()
이렇게요.
별을 출력하는 코드의 레인지 값이 변했는데 이렇 출력하면 무엇이 나올까요?
*
**
***
****
*****
이런 삼각형의 반쪽의 모습이 나오게 됩니다.
그다음은 쉬울겁니다.
아까 그 레인지 값에서 2만 곱해주면 삼각형이 나오게 될테니까요.
이것처럼요.
for i in range(5):
for j in range(4-i):
print(" ", end="")
for va in range(2*i+1):
print("*", end="")
print()
이러면 우리가 원했던 삼각형의 모습에서 거의 다왔습니다.
*
***
*****
*******
*********
일단 여기까지 왔는데요 .
여기서 어떻게 해야만 속을 없앨수가 있을까요?
바로 if문을 넣어서 조건을 추가해 별을 찍을곳 과 안찍을곳을 구별해서 짜시면 됩니다.
아까 속이빈 삼각형과 비교를 해볼까요?
*
* *
* *
* *
*********
보시면 우리는 가로로 봤을때 2,3,4째 라인은 처음과 끝에만 별을 출력했습니다.그리고 1,5번째 라인은 그대로 출력했습니다.
이것을 조건으로 만들어보면
for i in range(5):
for j in range(4-i):
print(" ", end="")
for va in range(2*i+1):
if va == 0 or i == 5-1 or va == 2*i:
print("*", end="")
else:
print(" ", end="")
print()
이런코드가 완성이 되고 이것을 출력하면
*
* *
* *
* *
*********
짜잔~ 이렇게 속이빈 삼각형이 출력이 됩니다.
오늘은 별찍기 중에서 속이 빈 삼각형 문제를 풀어봤는데요.
다음에도 풀었던 문제들을 포스팅하도록 하겠습니다.끝
댓글남기기