GreatAlgorithm-Study / AlgorithmStudy

🌟알고리즘 대장정🌟
6 stars 4 forks source link

[3주차_화요일] 15989_1, 2, 3 더하기 4 #24

Closed Jewan1120 closed 1 month ago

Jewan1120 commented 2 months ago
baexxbin commented 1 month ago

🤔 시간복잡도 고려사항


💡 풀이 아이디어

dp 잘 못해서... 점화식이 이쁘진 않은것 같다.

KodaHye commented 1 month ago

🤔 시간복잡도 고려사항


💡 풀이 아이디어

사실 질문 게시판 보다가 스포당해서 왜 이런 점화식이 나오는지 고민해봤습니다 ^_^,,ㅎ,,,,

icegosimperson commented 1 month ago

🤔 시간복잡도 고려사항

💡 풀이 아이디어

for(int i=1; i<=3; i++) { for(int j=i; j<10001; j++) { dp[j] += dp[j-i]; } }

int T = Integer.parseInt(br.readLine()); // 테스트 케이스 개수 T

for(int i=0; i<T; i++) { int N = Integer.parseInt(br.readLine()); System.out.println(dp[N]); }



- n값이 크지 않아서  먼저 dp배열 값을 모두 초기화해주는 방식으로 풀었는데, 
- n값이 커지면 비효율적일 것 같습니다
yeongleej commented 1 month ago

🤔 시간복잡도 고려사항

dp로 해결 : O(N)

💡 풀이 아이디어

Jewan1120 commented 1 month ago

🤔 시간복잡도 고려사항

💡 풀이 아이디어

for (int i = 1; i <= 3; i++)
    for (int j = i; j < 10_001; j++)
        dp[j] += dp[j - i];
yeahdy commented 1 month ago

🤔 시간복잡도 고려사항

💡 풀이 아이디어

N 마다 1 2 3 이 마지막으로 올 때의 각 갯수가 모두 저장 되어 있을 때 →DP N 의 전체 방법의 수를 아래 규칙으로 찾을 수 있다.

(N -1의 첫번째 갯수) +  (N-2의 첫번째 두번째 갯수) + (N-3의 첫번째 두번째 세번째 갯수)