
현재 상태에서 보는 최선의 선태이 전체 선택지 중 최선의 선택지라고 가정하는 알고리즘
코드 작동 원리
#include<iostream>
#include<vector>
using namespace std;
int main() {
ios::sync_with_stdio(false);
cin.tie(NULL);
cout.tie(NULL);
int n, k;
cin >> n >> k;
vector <int> coin(n, 0);
for (int i = 0; i < n; i++) {
cin >> coin[i];
}
int sum = 0;
for (int i = n - 1; i >= 0; i--) {
if (k >= coin[i]) {
sum += (k / coin[i]); //4200/1000=4
k = k % coin[i]; //4200%1000=200
}
}
cout << sum;
return 0;
}
atoi() -> 문자열을 정수형으로 바꿔주는 기능#include<iostream>
#include<string> //문자열을 숫자로 바꿔줄 수 있는 기능!
using namespace std;
int main() {
ios::sync_with_stdio(false);
cin.tie(NULL);
cout.tie(NULL);
string number = "";
int res = 0;
string s;
cin >> s;
bool isMinus = false;
for (int i = 0; i <= s.length(); i++) {
if (s[i] == '+' || s[i] == '-' || i == s.length()) {
if (isMinus) {
res -= stoi(number); //문자열을 정수형으로 바꿔줌
number = "";
}
else {
res += stoi(number);
number = "";
}
}
else { //숫자를 만난 경우
number += s[i];
}
if (s[i] == '-') {
isMinus = true;
}
}
cout << res;
return 0;
}
https://www.acmicpc.net/problem/1931
https://www.acmicpc.net/problem/1744
https://www.acmicpc.net/problem/1715