白俊解答-ギターライン1049号
6106 ワード
📜 問題を理解する
DayOf Morningのギタリスト江土が使っていたギターがN本の弦を切った.そのため、新しい行を購入または交換する必要があります.疆土はできるだけお金を少なくします.6行セットを買うこともできますし、1つ以上の単行セットを買うこともできます.
1つのプログラムを作成して、プログラムの中で切れた他の行数Nと他の行ブランドM個、各ブランドが販売する他の行数6個のパッケージの価格、および単独で購入する時の価格を与える時、少なくともN個を買うのに最小限のお金がかかります.
💡 問題の再定義
各ブランドごとに6つのコース価格と1つのコース価格がある場合は、切れた他のロープを最低価格で購入します.
▼▼▼計画作成
まず、各パッケージと単一価格の中で最も安い価格を格納します.
その後、小包だけで詐欺、小包、ばら積み詐欺をすべて算出し、その中で最も安い金額を印刷することができます.
💻 計画の実行
最も安い金額を出力するために、グリディアルゴリズムを採用しました.現在の条件下で最適値を探す問題であるため,グリディアルゴリズムが適切である.
DayOf Morningのギタリスト江土が使っていたギターがN本の弦を切った.そのため、新しい行を購入または交換する必要があります.疆土はできるだけお金を少なくします.6行セットを買うこともできますし、1つ以上の単行セットを買うこともできます.
1つのプログラムを作成して、プログラムの中で切れた他の行数Nと他の行ブランドM個、各ブランドが販売する他の行数6個のパッケージの価格、および単独で購入する時の価格を与える時、少なくともN個を買うのに最小限のお金がかかります.
💡 問題の再定義
各ブランドごとに6つのコース価格と1つのコース価格がある場合は、切れた他のロープを最低価格で購入します.
▼▼▼計画作成
まず、各パッケージと単一価格の中で最も安い価格を格納します.
その後、小包だけで詐欺、小包、ばら積み詐欺をすべて算出し、その中で最も安い金額を印刷することができます.
💻 計画の実行
#include <iostream>
#include <cmath>
using namespace std;
int main() {
int N, M, package_price, piece_price;
cin >> N >> M;
double min_price = 1001 * N;
int min_package_price = 1001, min_piece_price = 1001;
int package_num, piece_num;
for(int i=0; i<M; i++){
cin >> package_price >> piece_price;
if (package_price < min_package_price)
min_package_price = package_price;
if (piece_price < min_piece_price)
min_piece_price = piece_price;
}
// 패키지만으로 사기
package_num = ceil(N / 6.0);
if(package_num * min_package_price < min_price)
min_price = package_num * min_package_price;
// 패키지 + 낱개
package_num = floor(N / 6.0);
piece_num = N % 6;
if(package_num * min_package_price + piece_num * min_piece_price < min_price)
min_price = package_num * min_package_price + piece_num * min_piece_price;
// 낱개만으로 사기
if(min_piece_price * N < min_price)
min_price = min_piece_price * N;
cout << min_price << endl;
}
🤔 振り返る最も安い金額を出力するために、グリディアルゴリズムを採用しました.現在の条件下で最適値を探す問題であるため,グリディアルゴリズムが適切である.
Reference
この問題について(白俊解答-ギターライン1049号), 我々は、より多くの情報をここで見つけました https://velog.io/@delicate1290/백준-문제-풀이-기타줄-1049번テキストは自由に共有またはコピーできます。ただし、このドキュメントのURLは参考URLとして残しておいてください。
Collection and Share based on the CC Protocol