-
[c++][구현] 백준 20546번: 기적의 매매법알고리즘 2022. 3. 20. 23:13
문제풀이
1. 준현이는 보유한 현금에서 주식을 살 수 있을 경우 즉시 매수를 하고 성민이는 3일 연속 주가 하락 시 매수, 3일 연속 주가 상승 시 매도한다.
코드
#include <iostream> using namespace std; int main() { int money; cin >> money; int j = money, s = money; // 주식 매수, 매도 후 보유 현금 int j_stock = 0, s_stock = 0; // 보유 주식 수 int stock[14]; // 14일 간의 주가 for (int i = 0; i < 14; i++) { cin >> stock[i]; // 준현 - 주식을 살 수 있다면 가능한 만큼 즉시 매수 j_stock += j / stock[i]; j = j % stock[i]; // 성민 if (i >= 2) { // 3일 연속 상승 시 전량 매도 if (stock[i - 1] > stock[i - 2] && stock[i - 2] > stock[i - 3]) { s += s_stock * stock[i]; s_stock = 0; } // 3일 연속 하락 시 전량 매수 else if (stock[i - 1] < stock[i - 2] && stock[i - 2] < stock[i - 3]) { s_stock += s / stock[i]; s = s % stock[i]; } } } // 자산 = 현금 + 마지막 주가 * 주식 수 int j_total = j + (j_stock * stock[13]); int s_total = s + (s_stock * stock[13]); if (j_total > s_total) { cout << "BNP"; } else if(j_total < s_total) { cout << "TIMING"; } else { cout << "SAMESAME"; } return 0; }
'알고리즘' 카테고리의 다른 글
[c++][그리디] 백준 1758번: 알바생 강호 (0) 2022.05.10 [c++][그리디] 백준 2217번: 로프 (0) 2022.04.24 [c++][그래프] 백준 1325번: 효율적인 해킹 (0) 2022.03.20 [c++][그리디] 백준 1343번: 폴리오미노 (0) 2022.03.17 [c++][구현] 백준 21918번: 전구 (0) 2022.01.20