나선형 알파벳 패턴이란?
알파벳을 나선형(spiral) 패턴으로 표현하면 아래와 같은 형태의 출력물이 만들어집니다. 각 줄마다 두 개의 알파벳이 한 쌍을 이루며, 줄이 바뀔 때마다 문자의 순서가 좌우로 뒤바뀌어 지그재그처럼 배열되는 것이 특징입니다.

핵심 로직
나선형 모델로 알파벳을 표현할 때 사용되는 핵심 로직은 다음과 같습니다.
if(rows<=13 && rows>=1){
for(i=1;i<=rows*2;i+=2){
if(k%2==1){
printf("%c %c",i+64,i+65);
k++;
}else{
printf("%c %c",i+65,i+64);
k++;
}
printf("\n");
}
}
else{
printf("Please Enter from 1 to 13 only\n");
}
동작 원리
이 로직의 핵심 요소를 살펴보면 다음과 같습니다.
- ASCII 코드 변환: 대문자 'A'의 ASCII 코드는 65이므로, 변수 i에 64를 더하면 첫 번째 문자를, 65를 더하면 두 번째 문자를 얻을 수 있습니다.
- 2씩 증가하는 반복문: 한 줄에 서로 다른 두 글자를 출력해야 하므로, 반복 변수 i를 2씩 증가시켜 각 줄의 시작 문자를 결정합니다.
- 순서 교차(toggle): 변수 k를 이용해 홀수 번째 줄에서는 오름차순(A B), 짝수 번째 줄에서는 내림차순(D C)으로 출력 순서를 번갈아 바꿉니다. 이 교차가 반복되면서 시각적으로 나선형 느낌을 주는 패턴이 완성됩니다.
- 입력 범위 검증: 알파벳은 총 26개이므로 최대 13줄까지만 표현할 수 있습니다. 따라서 입력값이 1~13 범위를 벗어나면 안내 메시지를 출력하고 종료합니다.
전체 프로그램
다음은 알파벳을 나선형 패턴으로 출력하는 전체 C 프로그램입니다.
#include<stdio.h>
main(){
int i,rows,k=1;
printf("Enter number of Rows for Spiral Alpha Pattern from 1 to 13\n");
scanf("%d",&rows);
if(rows<=13 && rows>=1){
for(i=1;i<=rows*2;i+=2){
if(k%2==1){
printf("%c %c",i+64,i+65);
k++;
}else{
printf("%c %c",i+65,i+64);
k++;
}
printf("\n");
}
}else{
printf("Please Enter from 1 to 13 only\n");
}
}
실행 결과
위 프로그램을 컴파일하여 실행하고 행 개수로 10을 입력하면 다음과 같은 결과가 출력됩니다.
Enter number of Rows for Spiral Alpha Pattern from 1 to 13 10 A B D C E F H G I J L K M N P O Q R T S
출력 결과를 보면 홀수 번째 줄(A B, E F, I J...)은 알파벳 순서대로, 짝수 번째 줄(D C, H G, L K...)은 역순으로 출력되며, 이 규칙적인 교차가 반복되어 나선형 패턴이 형성됩니다. 이 프로그램은 반복문과 조건문, ASCII 코드 활용법을 동시에 연습할 수 있는 좋은 예제이므로, C 언어 초보자의 패턴 출력 문제 학습에 활용하기에 적합합니다.