반응형 그리디 알고리즘2 [cpp 알고리즘] 백준 1744 수 묶기 [백준] 1744 수 묶기 풀이 그리디 알고리즘, 정렬, 많은 조건 분기 문제 출처: https://www.acmicpc.net/problem/1744 문제 요약 - 길이가 N인 수열이 주어졌을 때, 두 수를 곱하거나 그대로 둘 수 있다. 이 수들을 모두 더한 값들 중 최댓값을 구하면 된다. 풀이 정리 1. 일단 오름차순으로 정렬한다. 2. 숫자 1을 기준으로 3가지 경우로 나뉘어진다. (1) 1보다 작은, 0이거나 음수인 경우 -> 앞쪽(작은 수)부터 두 수를 곱해서 최종 결과 값에 더하면 된다. (2) 1인 경우 -> 곱하는 데 사용하지 않고, 더하면 된다. (3) 1보다 큰 양수인 경우 -> 뒤쪽(큰 수)부터 두 수를 곱해서 최종 결과 값에 더하면 된다. 3. (1)의 경우 혹은 (3)의 경우가 홀.. 2023. 11. 11. [cpp 알고리즘] 백준 2839 설탕배달 c++ 1. 문제 2. 풀이 3. 코드 #include #include using namespace std; int N; int dp[1001][5]; int ans =0; int main(){ // input cin >> N; // 마지막 자릿수 확인 if(N%10==0 || N%10==5){ ans = N/5; } else if(N%10==1 || N%10==6){ ans = 2+(N-3*2)/5; } else if(N%10==2 || N%10==7){ ans = 4+(N-3*4)/5; } else if(N%10==3 || N%10==8){ ans = 1+(N-3*1)/5; } else if(N%10==4 || N%10==9){ ans = 3+(N-3*3)/5; } // except if(N==4 || N=.. 2022. 7. 13. 이전 1 다음 반응형