20546번: 🐜 기적의 매매법 🐜
1월 14일 기준 준현이의 자산이 더 크다면 "BNP"를, 성민이의 자산이 더 크다면 "TIMING"을 출력한다. 둘의 자산이 같다면 "SAMESAME"을 출력한다. 모든 결과 따옴표를 제외하고 출력한다.
www.acmicpc.net
주어진 조건 그대로 코드를 구현하면 된다.
구현은 조건이 세세해서 하나라도 빠지면 틀리기 때문에 주의해서 풀어야 한다.
#include <iostream>
using namespace std;
int main()
{
int cash;
int stock[14];
cin >> cash;
for(int i = 0; i < 14; i++)
cin >> stock[i];
int BNPCash = cash;
int BNP = 0;
for(int i = 0; i < 14; i++){
if(BNPCash >= stock[i]){ // 주식을 살 수 있음
BNP = BNPCash / stock[i];
BNPCash %= stock[i];
}
}
int TIMINGCash = cash;
int TIMING = 0;
int BuyAll = 0;
int SellAll = 0;
int postCash = 0;
for(int i = 0; i < 14; i++){
if(postCash < stock[i]){
// 전날 대비 상승
BuyAll++;
SellAll = 0;
} else if(postCash > stock[i]){
//전날 대비 하락
BuyAll = 0;
SellAll++;
} else{
BuyAll = 0;
SellAll = 0;
}
if(SellAll >= 3){
// 전량 매수
if(TIMINGCash >= stock[i]){ // 돈이 있다면
TIMING += (TIMINGCash / stock[i]);
TIMINGCash %= stock[i];
}
}
if(BuyAll >= 3){
// 전량 매도
TIMINGCash += (TIMING * stock[i]);
TIMING = 0;
}
postCash = stock[i];
}
// 비교
int resultBNP = BNPCash + BNP * stock[13];
int resultTIMING = TIMINGCash + TIMING * stock[13];
cout << resultBNP << endl;
cout << resultTIMING << endl;
if(resultBNP > resultTIMING) cout << "BNP";
else cout << "TIMING";
return 0;
}
'코딩테스트' 카테고리의 다른 글
특정 거리의 도시 찾기 (0) | 2024.02.22 |
---|---|
[5347] LCM (0) | 2024.02.20 |
[이코테] 뱀 (0) | 2024.01.26 |
[이코테] 무지의 먹방 라이브 (0) | 2024.01.24 |
[이코테] 볼링공 고르기 (0) | 2024.01.23 |
댓글