Algorithms/Greedy Algorithm
-
[그리디 알고리즘] 곱하기 혹은 더하기 ★☆☆Algorithms/Greedy Algorithm 2021. 2. 17. 18:54
문제 : 숫자로만 이루어진 문자열 S가 주어질 때, 숫자 사이에 X 또는 + 연산자를 추가하여 만들 수 있는 가장 큰 수는? 입력 조건 첫째 줄에 여러 개의 숫자로 구성된 문자열 S가 주어진다 (1 str; for (int i = 0;i < str.size();i++) { if (result == 0) { if (str[i] == '0') continue; result = int(str[i] - 48); } else { if (str[i] == '0') continue; if (str[i] == '1') result++; else result *= int(str[i] - 48); } } cout
-
[그리디 알고리즘] 문제풀이 전략Algorithms/Greedy Algorithm 2021. 2. 9. 16:26
특정한 문제를 만났을 때 그리디 알고리즘을 사용할 것인지 판단하려면 "단순히 현재 상황에서 가장 좋아 보이는 것만을 선택해도 문제를 풀 수 있는가" 를 생각해 보아야 한다 그리디 알고리즘을 사용하는 대표 문제로 거스름돈 문제를 살펴 보자 (BOJ#11047) 각 화폐 단위에 대해서 선택할 수 있는 한 가장 많이 선택하는 경우가 정답이 된다 #include using namespace std; int n, k; int cnt; // 동전 개수 int coin[10]; int main() { ios::sync_with_stdio(0); cin.tie(0); cin >> n >> k; for (int i = 0; i > coin[i]; for (int i = n - 1;i >= 0;i..