본문 바로가기
코딩테스트 준비/프로그래머스

프로그래머스 C# - 삼총사 +) DFS사용해서 풀기

by 코딩하는 돼징 2024. 6. 14.
반응형

문제를 보고 DFS로 풀었는데 제출 후 다른 사람들 코드에서는 다들 반복문을 사용해서 풀어서 답을 공유하고자 게시글을 작성하게 되었습니다 :)

 

알고리즘 설명

DFS의 depth값이 3이 되는 경우 세가지 조합이 생긴것이므로 return해주도록 하였고 return 전에 sum의 값이 0인 경우 answer값을 증가되도록 하였다.

예시

[-2, 3, 0, 2, -5]


코드 전문

using System;
using System.Linq;
public class Solution {
    static int answer = 0;
    public void dfs(int idx, int depth, int sum, int[] number){
        if(depth == 3) 
        {
            if(sum == 0) answer++;
            return;
        }

        for(int i = idx; i < number.Length; i++)
            dfs(i + 1, depth + 1, sum + number[i], number);
    }
    public int solution(int[] number) {
        dfs(0, 0, 0, number);
        return answer;
    }
}
반응형

댓글