알고리즘

백준 14889번 스타트와 링크

moongi 2023. 9. 7. 16:54
반응형
#include <iostream>
#include <climits>
using namespace std;

int n;
int arr[22][22];
bool check[22];
int ans = INT_MAX;

void DFS(int x, int L)
{
    if (x == n / 2)
    {
        int start, link;
        start = 0;
        link = 0;

        for (int i = 0; i < n; i++)
        {
            for (int j = 0; j < n; j++)
            {
                if (check[i] == true && chek[j] == true)
                {
                    start += arr[i][j];
                }
                if (check[i] == false && check[j] == false)
                {
                    link += arr[i][j];
                }
            }
        }

        int temp = abs(start - link);
        if (ans > temp)
        {
            ans = temp;
        }

        return;
    }

    for (int i = L; i < n; i++)
    {
        check[L] = true;
        DFS(x + 1, i + 1);
        check[L] = false;
    }
}
int main(int argc, char const *argv[])
{
    ios_base::sync_with_stdio(false);
    cin.tie(NULL);

    cin >> n;

    for (int i = 0; i < n; i++)
    {
        for (int j = 0; j < n; j++)
        {
            cin >> arr[i][j];
        }
    }
    DFS(0, 1);

    return 0;
}
반응형

'알고리즘' 카테고리의 다른 글

백준[15663번] N과 M(9)  (2) 2023.10.31
백준[2133번] 타일 채우기  (0) 2023.10.30
백준[3197번] 백조와 호수  (0) 2023.09.19
백준[1655번] 가운데를 말해요  (0) 2023.09.19
이진 탐색(Binary_search) using python  (0) 2022.12.31