[BOJ][C#] 7490 0 만들기

LimJaeJun·2023년 8월 9일
0

PS/BOJ

목록 보기
10/108

📕 문제

📌 링크

📘 코드

namespace BOJ
{
    class No_7490
    {
        static int N;

        static void Main()
        {
        	int t = int.Parse(Console.ReadLine());

            while(t-- > 0)
            {
                N = int.Parse(Console.ReadLine());

                DFS(0, 1, 1, 1, "1");

                Console.WriteLine();
            }
        }

        static void DFS(int sum, int sign, int num, int n, string str)
        {
            if(n == N)
            {
                sum += (num * sign);
                if(sum==0)
                {
                    Console.WriteLine(str);
                }
            }
            else
            {
                DFS(sum, sign, num * 10 + (n + 1), n + 1, str + ' ' + (char)(n + 1 + '0'));
                DFS(sum + (sign * num), 1, n + 1, n + 1, str + '+' + (char)(n + 1 + '0'));
                DFS(sum + (sign * num), -1, n + 1, n + 1, str + '-' + (char)(n + 1 + '0'));
            }
        }
    }
}

📙 오답노트

처음에는 리스트에 담아 sort도 해보고 orderby도 해보았지만 정렬이 잘 되지 않았다
그래서 0이 되었을때 바로바로 출력할 수 있게 하였다. [참고]

📒 알고리즘 분류

  • 구현
  • 문자열
  • 브루트포스 알고리즘
  • 백트래킹
profile
Dreams Come True

0개의 댓글

관련 채용 정보