Computer >> 컴퓨터 >  >> 프로그래밍 >> C#

C#으로 상삼각 행렬 출력하기 – 조건문과 반복문 활용 예제

상삼각 행렬이란?

상삼각 행렬(Upper Triangular Matrix)은 주대각선(main diagonal) 아래에 위치한 모든 요소가 0인 행렬을 말합니다. 즉, 주대각선과 그 오른쪽 위 영역의 요소들만 실제 값을 가지며, 왼쪽 아래 영역의 요소는 모두 0으로 채워집니다.

C#에서 상삼각 행렬을 만들려면 행 인덱스와 열 인덱스를 비교하는 간단한 조건문을 사용하면 됩니다.

핵심 조건

주대각선 아래의 요소를 0으로 설정하려면 다음 조건을 사용합니다.

if (i <= j)
    Console.Write(A[i, j] + "\t");
else
    Console.Write("0\t");

여기서 i는 행 인덱스, j는 열 인덱스입니다. 행 인덱스가 열 인덱스보다 작거나 같으면(i ≤ j) 해당 요소는 주대각선 또는 그 위쪽에 위치하므로 원래 값을 출력하고, 그렇지 않은 경우에는 0을 출력합니다.

전체 예제 코드

아래 전체 코드를 실행하면 사용자로부터 행렬을 입력받은 뒤, 상삼각 행렬 형태로 변환하여 화면에 출력합니다.

using System;

class Demo {
    static void Main() {
        int m, n, i, j;
        Console.Write("행렬의 행과 열 개수 입력: ");
        m = Convert.ToInt16(Console.ReadLine());
        n = Convert.ToInt16(Console.ReadLine());

        int[] A = new int[10, 10];
        Console.WriteLine("\n행렬 요소 입력:");
        for (i = 0; i < m; i++) {
            for (j = 0; j < n; j++) {
                A[i, j] = Convert.ToInt16(Console.ReadLine());
            }
        }

        Console.WriteLine("\n입력한 행렬:");
        for (i = 0; i < m; i++) {
            for (j = 0; j < n; j++) {
                Console.Write(A[i, j] + "\t");
            }
            Console.WriteLine();
        }

        Console.WriteLine("\n상삼각 행렬:");
        for (i = 0; i < m; i++) {
            for (j = 0; j < n; j++) {
                if (i <= j)
                    Console.Write(A[i, j] + "\t");
                else
                    Console.Write("0\t");
            }
            Console.WriteLine();
        }

        Console.ReadLine();
    }
}

실행 결과

3×3 크기의 행렬을 입력했을 때의 실행 결과는 다음과 같습니다.

행렬의 행과 열 개수 입력:
3
3

행렬 요소 입력:
1
2
3
4
5
6
7
8
9

입력한 행렬:
1    2    3
4    5    6
7    8    9

상삼각 행렬:
1    2    3
0    5    6
0    0    9

코드 동작 방식

프로그램의 흐름을 단계별로 살펴보면 다음과 같습니다.

1. 행렬 크기 입력: 사용자로부터 행(m)과 열(n)의 개수를 입력받습니다.

2. 행렬 요소 저장: 중첩된 for 문을 사용해 2차원 배열 A에 요소들을 순서대로 저장합니다.

3. 원본 행렬 출력: 입력된 행렬을 그대로 화면에 출력하여 비교 기준을 제공합니다.

4. 상삼각 변환 및 출력: i ≤ j 조건을 검사하여 주대각선 위쪽 요소는 그대로, 아래쪽 요소는 0으로 바꿔 출력합니다.

이처럼 이중 반복문과 하나의 조건문만으로도 상삼각 행렬을 손쉽게 구현할 수 있습니다. 같은 원리를 응용하면 주대각선 위쪽을 0으로 만드는 하삼각 행렬(Lower Triangular Matrix)도 조건식만 변경하여 간단히 작성할 수 있습니다.