파이썬(Python)의 for 루프와 range 함수를 활용하면 다양한 형태의 피라미드 구조를 손쉽게 그릴 수 있습니다. 이 접근법의 핵심은 출력하려는 기호가 놓일 세로·가로 공간을 고려하여 적절한 for 루프를 설계하는 것입니다. 아래에서는 난이도별로 네 가지 피라미드 패턴을 코드 예제와 함께 살펴보겠습니다.
패턴 1 – 직각삼각형
가장 기본적인 형태로, 왼쪽 하단을 기준으로 하는 직각삼각형 모양의 패턴입니다. 바깥 루프는 줄 수를, 안쪽 루프는 해당 줄에 출력할 별표(*)의 개수를 담당합니다.
예제 코드
def pyramid(p):
for m in range(0, p):
for n in range(0, m+1):
print("* ",end="")
print("\r")
p = 10
pyramid(p)
실행 결과
위 코드를 실행하면 다음과 같은 결과가 출력됩니다.
* * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * *
패턴 2 – 180도 회전한 직각삼각형
패턴 1을 오른쪽으로 밀어낸 형태입니다. 각 줄을 출력하기 전에 공백을 먼저 찍고, 줄이 내려갈수록 공백 개수를 2씩 줄여가며 별표를 출력합니다.
예제 코드
def pyramid(p):
X = 2*p - 2
for m in range(0, p):
for n in range(0, X):
print(end=" ")
X = X - 2
for n in range(0, m+1):
print("* ", end="")
print("\r")
p = 10
pyramid(p)
실행 결과
위 코드를 실행하면 다음과 같은 결과가 출력됩니다.
*
* *
* * *
* * * *
* * * * *
* * * * * *
* * * * * * *
* * * * * * * *
* * * * * * * * *
* * * * * * * * * *
패턴 3 – 이등변 삼각형
이번에는 양변의 길이가 같은 이등변 삼각형(isosceles triangle) 모양을 그려봅니다. 왼쪽에 공백을 채운 뒤, 홀수 개수만큼 별표를 출력하여 중앙을 기준으로 대칭을 이루는 피라미드 형태를 만듭니다.
예제 코드
n = 0
r = 12
for m in range(1, r+1):
for gap in range(1, (r-m)+1):
print(end=" ")
while n != (2*m-1):
print("* ", end="")
n = n + 1
n = 0
print()
실행 결과
위 코드를 실행하면 다음과 같은 결과가 출력됩니다.
*
* * *
* * * * *
* * * * * * *
* * * * * * * * *
* * * * * * * * * * *
* * * * * * * * * * * * *
* * * * * * * * * * * * * * *
* * * * * * * * * * * * * * * * *
* * * * * * * * * * * * * * * * * * *
* * * * * * * * * * * * * * * * * * * * *
* * * * * * * * * * * * * * * * * * * * * * *
패턴 4 – 정삼각형
마지막으로 세 변의 길이가 모두 같은 정삼각형(equilateral triangle) 패턴입니다. 이번에는 별표 대신 '@' 기호를 사용했으며, 공백 개수를 한 칸씩 줄여가며 대칭 구조를 완성합니다.
예제 코드
length = 12
k = (2 * length) - 2
for p in range(0, length):
for n in range(0, k):
print(end=" ")
k = k - 1
for n in range(0, p + 1):
print("@", end=' ')
print(" ")
실행 결과
위 코드를 실행하면 다음과 같은 결과가 출력됩니다.
@
@ @
@ @ @
@ @ @ @
@ @ @ @ @
@ @ @ @ @ @
@ @ @ @ @ @ @
@ @ @ @ @ @ @ @
@ @ @ @ @ @ @ @ @
@ @ @ @ @ @ @ @ @ @
@ @ @ @ @ @ @ @ @ @ @
@ @ @ @ @ @ @ @ @ @ @ @
마무리
이처럼 for 루프와 range 함수만으로도 직각삼각형부터 정삼각형까지 다양한 피라미드 패턴을 자유롭게 출력할 수 있습니다. 루프의 범위나 공백 계산 방식을 조금씩 바꿔가며 연습하면 반복문 구조에 대한 이해를 크게 높일 수 있으니, 위 예제들을 직접 변형해 보시기 바랍니다.