이진 삼각형이란?
이진 삼각형(Binary Triangle)은 0과 1만으로 구성된 삼각형 모양의 패턴입니다. 각 행마다 숫자가 하나씩 늘어나면서 0과 1이 교대로 반복되어 출력되는 것이 특징입니다.
이 패턴을 만들려면 중첩 for 루프(nested for loop)를 사용해야 합니다. 바깥쪽 루프는 행(row)을 제어하고, 안쪽 루프는 해당 행에 출력될 열(column)의 개수를 제어합니다.
핵심 로직
for (int i = 1; i <= n; i++) {
for (j = 1; j <= i; j++) {
if (a == 1) {
Console.Write("0");
a = 0;
} else if (a == 0) {
Console.Write("1");
a = 1;
}
} Console.Write("\n");
}동작 원리
위 코드의 핵심은 변수 a의 값을 토글(toggle)하는 방식입니다.
- 변수
a의 값이 1이면"0"을 출력한 뒤a를 0으로 변경합니다. - 변수
a의 값이 0이면"1"을 출력한 뒤a를 1로 변경합니다.
이렇게 하면 출력되는 숫자가 매번 0과 1 사이에서 교대로 바뀌게 됩니다. 안쪽 루프가 한 행의 출력을 마치면 Console.Write("\n")으로 줄바꿈을 하여 다음 행으로 넘어갑니다.
출력 결과
n 값(행의 개수)을 7로 설정하면 다음과 같은 이진 삼각형이 화면에 표시됩니다.
1
01
010
1010
10101
010101
0101010
전체 예제 코드
using System;
namespace Program {
public class Demo {
public static void Main(String[] args) {
int j;
int a = 0, n = 7;
// 1부터 7까지 반복
for (int i = 1; i <= n; i++) {
for (j = 1; j <= i; j++) {
if (a == 1) {
Console.Write("0");
a = 0;
} else if (a == 0) {
Console.Write("1");
a = 1;
}
} Console.Write("\n");
}
Console.ReadLine();
}
}
}
정리
이진 삼각형은 중첩 루프와 단순한 조건문만으로도 쉽게 구현할 수 있습니다. 핵심은 불리언 스위치 역할을 하는 변수 a를 이용해 0과 1을 번갈아 출력하는 것입니다. 이 패턴은 피라미드 패턴, 파스칼 삼각형 등 다른 콘솔 출력 패턴 문제를 학습할 때도 유용하게 응용할 수 있는 기초 예제입니다.