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

C#으로 하삼각 행렬(Lower Triangular Matrix) 출력하는 방법

하삼각 행렬(Lower Triangular Matrix)은 주대각선(main diagonal) 위쪽에 있는 모든 요소를 0으로 설정한 행렬입니다. 즉, 주대각선과 그 아래쪽 요소만 값을 가지며, 나머지 위치는 모두 0이 됩니다.

핵심 조건

하삼각 행렬을 만들기 위해서는 다음 조건을 사용합니다. 행 인덱스 i가 열 인덱스 j보다 크거나 같으면 해당 요소를 그대로 출력하고, 그렇지 않으면 0을 출력합니다.

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

전체 예제 코드

아래의 완성된 C# 코드를 실행하여 하삼각 행렬을 직접 확인해 보세요. 사용자로부터 행렬의 크기와 요소를 입력받은 후, 원본 행렬과 하삼각 형태로 변환된 행렬을 차례로 출력합니다.

using System;
using System.Linq;
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.Write("\n행렬의 요소를 입력하세요: ");
        for (i = 0; i < m; i++) {
            for (j = 0; j < n; j++) {
                A[i, j] = Convert.ToInt16(Console.ReadLine());
            }
        }
        Console.Clear();
        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++) {
            Console.Write("\n");
            for (j = 0; j < n; j++) {
                if (i >= j)
                    Console.Write(A[i, j] + "\t");
                else
                    Console.Write("0\t");
            }
        }
        Console.ReadLine();
    }
}

실행 결과 예시

프로그램을 실행하면 먼저 행렬의 행과 열 개수를 입력받고, 이어서 각 위치의 요소를 순서대로 입력합니다. 입력이 완료되면 콘솔 화면이 지워진 후 원본 행렬과 주대각선 위의 요소가 모두 0으로 대체된 하삼각 행렬이 출력됩니다.

행렬의 행과 열 개수를 입력하세요:
3
3

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

원본 행렬
1    2    3
4    5    6
7    8    9

하삼각 행렬
1    0    0
4    5    0
7    8    9

정리

하삼각 행렬 변환의 핵심은 단순히 i >= j 조건 하나입니다. 이 조건을 활용하면 반복문 안에서 각 요소의 위치를 판별하여, 주대각선 아래쪽 요소는 그대로 두고 위쪽 요소만 0으로 바꿀 수 있습니다. 같은 원리를 응용하면 상삼각 행렬(Upper Triangular Matrix)도 i <= j 조건으로 손쉽게 구현할 수 있습니다.