공부/C#

[C#] 프로그래머스 동적 프로그래밍 - N으로 표현

굴러다니다니 2025. 3. 9. 22:46

https://school.programmers.co.kr/learn/courses/30/lessons/42895

 

프로그래머스

SW개발자를 위한 평가, 교육, 채용까지 Total Solution을 제공하는 개발자 성장을 위한 베이스캠프

programmers.co.kr

 

동적 프로그래밍은 코드는 쉬운데 코드 구현 개념이 너무 어려운듯,,

using System;
using System.Collections.Generic;

public class Solution {
    public int solution(int N, int number) {
        if (number == N) return 1;
        
        HashSet<int>[] dp = new HashSet<int>[9];
        for (int i =1; i <= 8; i++){
            dp[i] = new HashSet<int>();
            dp[i].Add(int.Parse(new string(N.ToString()[0], i))); //글자수 만큼 숫자 추가
            
            for (int j = 1; j < i; j++){
                foreach(var now in dp[j]){
                    foreach (var bef in dp[i-j]){
                        dp[i].Add(now + bef);
                        dp[i].Add(now - bef);
                        dp[i].Add(now * bef);
                        if (bef != 0) dp[i].Add(now / bef);
                    }
                }
            }
            if (dp[i].Contains(number)) return i;
        }
        return -1;
        
        
        
    }
}
728x90
반응형