양의 정수 n이 주어졌을 때, 숫자들이 0을 중심으로 좌우 대칭(미러 이미지) 형태로 배치된 삼각형 패턴을 생성하고 그 결과를 화면에 출력하는 프로그램을 만들어 보겠습니다.
예시
입력 -: n = 6 출력 -:

입력 -: n = 3 출력 -:

프로그램에 적용된 접근 방식
- n의 값을 양의 정수로 입력받습니다.
- 패턴의 행(row) 개수만큼 첫 번째 반복문 i를 순회합니다.
- 패턴에 들어갈 공백의 개수만큼 두 번째 반복문 j를 순회합니다.
- 패턴에 출력될 숫자들을 처리하기 위한 세 번째 반복문을 순회합니다.
알고리즘
시작
1단계 -> 삼각형 패턴의 미러 이미지를 출력하는 함수 선언
void print_mirror(int n)
int temp = 1, temp2 = 1로 선언 및 초기화
int i = 0부터 i < n까지 i++ 반복
int j = n - 1부터 j > i까지 j-- 반복
공백 출력
종료
int k = 1부터 k <= temp까지 k++ 반복
abs(k - temp2) 값 출력
종료
temp += 2 설정
temp2++ 증가
줄바꿈 문자(\n) 출력
2단계 -> main() 함수에서
int n = 6 선언
print_mirror(n) 호출
종료C++ 코드 예제
#include <bits/stdc++.h>
using namespace std;
// 삼각형 패턴의 미러 이미지를 출력하는 함수
void print_mirror(int n) {
int temp = 1, temp2 = 1;
for (int i = 0; i < n; i++) {
for (int j = n - 1; j > i; j--) {
cout << " ";
}
for (int k = 1; k <= temp; k++) {
cout << abs(k - temp2);
}
temp += 2;
temp2++;
cout << "\n";
}
}
int main() {
int n = 6;
print_mirror(n);
return 0;
}출력 결과

위 코드에서 핵심은 abs(k - temp2) 연산입니다. 각 행마다 temp는 홀수(1, 3, 5, ...)로 증가하여 해당 행의 숫자 개수를 결정하고, temp2는 절댓값 계산의 기준점 역할을 하여 0을 중심으로 좌우 대칭인 숫자열을 만들어 냅니다. 공백 출력 반복문이 각 행 앞부분을 채워 전체적으로 피라미드 모양의 미러 이미지가 완성됩니다.