안녕하세요 코드웍스입니다.
이번 시간에는 파이썬 반복문을 활용해서 별을 찍어보도록 하겠습니다.🤟

1. 기본 삼각형
아래와 같이 기본 삼각형을 출력해보세요
*
**
***
****
*****
정답
문제 분석
총 5줄의 *이 출력되고, 각 줄마다 *이 하나씩 증가합니다.
코드웍스 코드

- range(N,M)일때, N부터 M-1까지 순회하기때문에, 5까지 쓰이려면 M을 6으로 설정해야합니다.
- 만약 N을 0부터로 설정하고 싶다면, range(5)로 설정하고, 대신 별 출력 부분에 i+1을 곱해주면 됩니다.

파이썬 텍스트 코드
for i in range(1,6):
print("*"*i)
2. 역삼각형
아래와 같이 역삼각형을 출력해보세요.
*****
****
***
**
*
정답
문제 분석
총 5줄의 *이 출력되고, 가장 첫번째 줄의 *은 5개의 별을 가지고 있습니다.
각 줄마다 *이 하나씩 감소합니다.
코드웍스 코드


- 5개부터 1까지의 *을 출력해야하는데, 역순으로 순회하도록 하는 반복문을 사용하면 됩니다.
- for i in range(N,M,-1)일때, i 변수가 N에서 시작하여 -1씩 줄어서 M+1까지 감소하게 합니다.
파이썬 텍스트 코드
for i in range(5,0,-1):
print("*"*i)
3. 오른쪽 정렬 삼각형 패턴
오른쪽으로 정렬된 삼각형을 출력해보세요.
*
**
***
****
*****
정답
문제 분석
총 5줄의 *이 출력되고, 각 줄마다 *이 하나씩 감소합니다.
근데 가장 첫번째 *은 5개의 공백을 두고 오른쪽으로 정렬되어있습니다.
코드웍스 코드

- " " * (n - i)는 각 줄에 필요한 공백을 계산하여 왼쪽에 추가합니다.
- "*" * i는 현재 줄의 별 개수를 출력합니다.

- 공백을 i로 두고, range를 역순으로 돌립니다.
- *은 j라는 변수를 따로 두어서, 한번 loop이 돌아갈때마다 하나씩 증가시키도록 합니다.
파이썬 텍스트 코드
for i in range(1,6):
print(" "*(5-i)+"*"*i)
j = 1
for i in range(5,0,-1):
print(" "*(i-1)+"*"*j)
j += 1
4. 오른쪽 정렬 역삼각형 패턴
오른쪽으로 정렬된 역삼각형, 아래와 같이 출력해보세요.
*****
****
***
**
*
정답
문제 분석
총 5줄의 *이 출력되고, 가장 첫번째 줄의 *은 5개의 별을 가지고 있습니다.
각 줄마다 *이 하나씩 감소합니다. 다만 오른쪽으로 정렬이 되어있습니다.
코드웍스 코드

- "*" * (6 - i)는 현재 i의 값에 따라 별의 개수를 결정합니다. i가 1일 때 5개의 별, 2일 때 4개의 별, …, 5일 때 0개의 별을 출력합니다.
- " " * i는 현재 i 값에 따라 공백을 추가합니다. i가 1일 때 1개의 공백, 2일 때 2개의 공백, …, 5일 때 5개의 공백을 출력합니다.

- "*" * i는 현재 i 값에 따라 별의 개수를 결정합니다. i가 5일 때 5개의 별, 4일 때 4개의 별, 3일 때 3개의 별, 2일 때 2개의 별, 1일 때 1개의 별이 출력됩니다.
- " " * (5 - i)는 현재 i 값에 따라 공백을 추가합니다. i가 5일 때 0개의 공백, 4일 때 1개의 공백, 3일 때 2개의 공백, 2일 때 3개의 공백, 1일 때 4개의 공백이 출력됩니다.
파이썬 텍스트 코드
for i in range(1, 6):
print("*" * (6 - i) + " " * i)
for i in range(5,0,-1):
print("*"*(i) + " "*(5-i))
5. 피라미드 패턴
아래와 같은 피라미드를 출력해보세요.
*
***
*****
*******
*********
정답
코드웍스 코드


- " " * (5 - i)는 현재 i 값에 따라 출력할 공백의 개수를 결정합니다.
- i가 1일 때 4개의 공백, 2일 때 3개의 공백, 3일 때 2개의 공백, 4일 때 11개의 공백, 5일 때 0개의 공백이 출력됩니다.
- "*" * (2 * i - 1)는 현재 i 값에 따라 출력할 별의 개수를 결정합니다.
- i가 1일 때 1개의 별, 2일 때 3개의 별, 3일 때 5개의 별, 4일 때 7개의 별, 5일 때 9개의 별이 출력됩니다.
파이썬 텍스트 코드
for i in range(1,6):
print(" "*(5-i)+ "*"*(2*i-1))
for i in range(0,5):
print(" "*(4-i)+ "*"*(2*i+1))
6. 역피라미드 패턴
아래와 같이 역피라미드를 출력해보세요.
*********
*******
*****
***
*
정답
코드웍스 코드

파이썬 텍스트 코드
for i in range(5,0,-1):
print(" "*(5-i)+ "*"*(2*i-1))
#재귀를 이용한 코드
def star_tree(n, level=0):
if n <= 0:
return
print(" " * level + "*" * (2 * n - 1))
star_tree(n - 1, level + 1)
# 테스트
star_tree(5)
7. 다이아몬드 패턴
아래와 같은 다이아몬드 패턴을 출력해보세요.
*
***
*****
*******
*********
*******
*****
***
*
정답
코드웍스 코드

파이썬 텍스트 코드
for i in range(0,5):
print(" "*(4-i)+ "*"*(2*i+1))
for i in range(5,0,-1):
print(" "*(5-i) + "*"*(2*i-1))
8. 홀로 된 사각형 패턴
아래와 같은 사각형을 출력해보세요
*****
* *
* *
* *
*****
정답
코드웍스 코드


파이썬 텍스트 코드
for i in range(1,6):
if i ==1 or i ==5:
print("*"*5)
else:
print("*"+ " "*3+ "*")
9. X자 패턴
아래와 같은 X자 패턴을 출력해보세요
* *
* *
*
* *
* *
정답
코드웍스 코드


파이썬 텍스트 코드
for i in range(5):
if i == 2:
print(" " * 2 + "*")
elif i % 2 == 0:
print("*" + " " * 3 + "*")
else:
print(" " + "*" + " " + "*" + " ")
n = 5
for i in range(n):
for j in range(n):
if i == j or i + j == n - 1:
print("*", end="")
else:
print(" ", end="")
print()
10. 모래시계 패턴
아래와 같은 모래시계를 출력해보세요
*********
*******
*****
***
*
***
*****
*******
*********
정답
코드웍스 코드


두번째 삼각형에서 range가 2부터 시작하는 이유는 *이 하나만 출력되는 부분은 하나이기 떄문. 이미 위의 역삼각형 출력에서 *이 하나가 출력됨.
파이썬 텍스트 코드
for i in range(5,0,-1):
print(" "*(5-i)+"*"*(2*i-1))
for i in range(2,6):
print(" "*(5-i)+ "*"*(2*i-1))
def print_diamond(n):
# 상단 역삼각형
for i in range(n, 0, -1):
spaces = " " * (n - i) # 공백 계산
stars = "*" * (2 * i - 1) # 별 계산
print(spaces + stars) # 출력
# 하단 정삼각형
for i in range(2, n + 1):
spaces = " " * (n - i) # 공백 계산
stars = "*" * (2 * i - 1) # 별 계산
print(spaces + stars) # 출력
# 다이아몬드 크기 설정
n = 5
print_diamond(n)
본 실습의 모든 코드웍스 코드는 아래 링크에서 제공합니다.
'🦎파이썬 > 📖파이썬 기초 100제' 카테고리의 다른 글
[파이썬 기초 100제] 조건문 문제 part 1 (4) | 2024.11.08 |
---|---|
[파이썬 기초 100제] 입출력 input print 문제 (2) | 2024.10.27 |
[파이썬 기초 100제] 출력문 print 문제 (2) | 2024.10.22 |