c#/백준알고리즘

[백준 2798번 c#] 블랙잭

Heeyeon Choi 2022. 7. 17. 09:59
728x90
728x90

브루트포스 알고리즘 이 쓰인 문제이다.

 

using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Threading.Tasks;

namespace Project2
{
    class Class1
    {
        static void Main(string[] args)
        {
            //N,M 값 입력
            string[] N_M = Console.ReadLine().Split();
            int N = int.Parse(N_M[0]);
            int M = int.Parse(N_M[1]);

            //카드에 쓰여진 수 입력
            string[] nums = Console.ReadLine().Split();
            int[] numsInt = new int[N];

            //세 개의 카드의 값을 더할 sum 변수
            int sum = 0;
            //답을 알아낼 temp 변수
            int temp = 0;

            for(int i = 0; i < nums.Length; i++)
            {
                numsInt[i] = int.Parse(nums[i]);
            }
            //세 번의 for 루프를 통해 세개의 카드를 뽑을 수 있음
            for(int i=0; i<N; i++)
            {
                for(int j = 0; j < N; j++)
                {
                    for(int k=0; k < N; k++)
                    {
                        //서로 다른 수를 선택해야 하므로, 인덱스 값이 달라야 함
                        if(i != j && i != k && j != k)
                        {
                            sum = numsInt[i] + numsInt[j] + numsInt[k];
                        }
                        //M보다 작거나 같은데 이전에 temp에 저장된 값보다 커야함
                        if (sum <= M && sum>temp)
                        {
                            temp = sum;
                        }
                    }
                }
            }

            Console.WriteLine(temp);


        }
    }
}
728x90