
파이썬 반복문 코드
1번 문제(피라미드 만들기)
문제 설명:
숫자를 입력받아 피라미드 모양을 그리는 프로그램을 작성하세요.
세부 조건:
1. 사용자로부터 홀수만 입력받으세요.(1보다 커야함)
2. 입력받은 홀수를 이용하여 다음과 같은 규칙으로 피라미드 모양을 출력해야 합니다.
-
- 피라미드의 각 줄은 별(*)의 개수가 1부터 시작하여 점차 늘어나야 합니다.
- 별(*)은 가운데 정렬되어야 합니다.
- 예시: Number가 5일 경우, 다음과 같은 피라미드가 출력되어야 합니다.
#예시
입력 : 5
*
***
*****
# 풀이
while True:
Number = int(input("숫자를 입력하세요: "))
if Number % 2 == 1 and Number > 1:
for i in range((Number+1)//2):
print(" "*((Number-1-i-i)//2), "*"*(i+i+1), " "*((Number-1-i-i)//2), end = "\n")
else:
print("다시 실행해 주세요.")
break
풀이 :
홀수를 입력해야지만 동작이 되게끔 만들고 싶어 예외처리를 넣어줬습니다.
반복문인 for를 사용하여 (입력되는수+1)/2번 만큼의 층수를 만들었습니다.
해당 1층, 2층, 3층 ...에 대하여 앞에 빈칸이 필요하므로 (입력되는수 - 1 - 2*n번층) 형태로 구현했습니다.
# 결과
숫자를 입력하세요: 5
*
***
*****
숫자를 입력하세요: 7
*
***
*****
*******
2번 문제(모래시계 만들기)
문제 설명:
숫자를 입력받아 모래시계 모양을 그리는 프로그램을 작성하세요.
세부 조건:
1. 사용자로부터 홀수만 입력받으세요.(1보다 커야함)
2. 입력받은 홀수를 이용하여 다음과 같은 규칙으로 모래시계 모양을 출력해야 합니다.
-
- 모래시계의 윗부분은 별(*)의 개수가 1부터 시작하여 점차 늘어나야 합니다.
- 모래시계의 아랫부분은 별(*)의 개수가 가장 큰 값에서 시작하여 점차 줄어들어야 합니다.
- 각 줄의 별(*)은 가운데 정렬되어야 합니다.
- 예시: Number가 5일 경우, 다음과 같은 모래시계가 출력되어야 합니다.
#예시
입력 : 5
*
***
*****
***
*
# 풀이
while True:
Number = int(input("숫자를 입력하세요: "))
if Number % 2 == 1 and Number > 1:
for i in range((Number+1)//2):
print(" "*((Number-1-i-i)//2), "*"*(i+i+1), " "*((Number-1-i-i)//2), end = "\n")
for j in range((Number-1)//2):
print(" "*(j+1), "*"*(Number-2-j-j)," "*(j+1), end= "\n")
else:
print("다시 실행해 주세요.")
break
풀이 :
1번문제에서 아랫단만 추가하여 작성하였습니다.
# 결과
숫자를 입력하세요: 5
*
***
*****
***
*
숫자를 입력하세요: 7
*
***
*****
*******
*****
***
*
3번 문제(크리스마스 트리 만들기)
문제 설명:
숫자를 입력받아 크리스마스 트리를 그리는 프로그램을 작성하세요.
세부 조건:
1. 사용자로부터 홀수만 입력받으세요.(1보다 커야함)
2. 입력받은 홀수를 이용하여 다음과 같은 규칙으로 크리스마스 트리를 출력해야 합니다.
-
- 트리의 윗부분은 입력받은 숫자(Number)를 기준으로, 각 줄의 별(*) 개수가 1, 3, 5, ... 처럼 홀수로 증가해야 합니다.
- 트리의 줄기 부분은 트리의 가장 넓은 부분의 너비를 고려하여 가운데에 하나의 별(*)을 출력해야 합니다.
- 예시: Number가 7일 경우, 다음과 같은 트리가 출력되어야 합니다.
#예시
입력 : 7
*
***
*
***
*****
*
***
*****
*******
*
*
*
# 풀이
while True:
Number = int(input("숫자를 입력하세요: "))
if Number%2 == 1 and Number > 1:
i = 1
while i <= (Number-1)//2:
i += 1
for j in range(i):
print(" "*((Number-1-2*j)//2), "*"*(2*j+1), " "*((Number-1-2*j)//2), end = "\n")
for k in range((Number-1)//2):
print(" "*((Number-1)//2), "*", " "*((Number-1)//2), end = "\n") # base on the tree
else:
print("다시 실행해 주세요.")
break
풀이 :
트리 윗부분과 아랫부분을 나누어서 작성하였습니다. 트리 아랫부분은 (Number-1)/2개만큼 띄어쓰기를 하였고,
트리 윗부분은 이중반복문을 사용하여 구현하였습니다.
# 결과
숫자를 입력하세요: 5
*
***
*
***
*****
*
*
숫자를 입력하세요: 7
*
***
*
***
*****
*
***
*****
*******
*
*
*

TEL (062-226-1777, 010-9891-7244), E-mail (ipmes@ipmes.co.kr)
임베디드 시스템 | PCB 설계 제작 | 펌웨어 개발 | 신호처리 | 응용프로그램
'연구노트 > Python' 카테고리의 다른 글
| 파이썬 숫자 및 문자열 처리 기초 (0) | 2025.09.30 |
|---|---|
| 파이썬 배열, 문자열, 반복문 활용 코드 (0) | 2025.09.29 |
| Python 정규 표현식 (0) | 2025.05.08 |
| 파이썬 프로그래밍 기초(3) (0) | 2025.04.30 |
| 파이썬 프로그래밍 기초(2) (0) | 2025.04.30 |