1. 문제
https://www.acmicpc.net/problem/20546
2. 풀이과정
14일간 주식 매매를 진행하고 준현이와 성민이의 매매법을 나누어 생각해 본다
준현이
- 매일 돈만 되면 가능한 한 모든 주식을 구매한다. = 매일 전량 매수
성민이
- 오늘 이전으로 3일 간 주가가 연속적으로 내려갔다면 = 조건에 맞으면 전량 매수
-오늘 이전으로 3일 간 주가가 연속적으로 올랐다면 = 조건에 맞으면 전량 매도
주가 배열을 순회하면서 위 로직을 처리하게 구현하면 끝난다.
3. C++ 정답 코드
#include <iostream>
#include <vector>
using namespace std;
int main() {
int n;
cin >> n;
vector <int> v(14);
for (auto& i : v)
{
cin >> i;
}
int j_money = n, s_money = n, j_stock = 0, s_stock = 0;
for (int i = 0; i < 14; i++)
{
while (j_money >= v[i]) //준현이
{
j_stock++;
j_money -= v[i];
}
if (2 < i) //성민이
{
if (v[i - 3] < v[i - 2] && v[i - 2] < v[i - 1]) //3일 연속 상승
{
while (s_stock > 0)
{
s_stock--;
s_money += v[i];
}
}
else if (v[i - 3] > v[i - 2] && v[i - 2] > v[i - 1]) //3일 연속 하락
{
while (s_money >= v[i])
{
s_stock++;
s_money -= v[i];
}
}
}
}
int j_result = j_money + j_stock * v[13];
int s_result = s_money + s_stock * v[13];
if (j_result > s_result)
cout << "BNP";
else if (j_result < s_result)
cout << "TIMING";
else
cout << "SAMESAME";
return 0;
}
'🏆 PS(Problem Solving) > Baekjoon' 카테고리의 다른 글
[Node.js] 백준 javascript 2578 빙고 (0) | 2024.05.30 |
---|---|
[C++] 백준 2578 빙고 (0) | 2024.05.30 |
[Node.js] 백준 Javascript 20546 기적의 매매법 (0) | 2024.05.28 |
[C++] 백준 14467 소가 길을 건너간 이유1 (0) | 2024.05.28 |
[Node.js] 백준 Javascript 14467 소가 길을 건너간 이유 1 (0) | 2024.05.28 |
1. 문제
https://www.acmicpc.net/problem/20546
2. 풀이과정
14일간 주식 매매를 진행하고 준현이와 성민이의 매매법을 나누어 생각해 본다
준현이
- 매일 돈만 되면 가능한 한 모든 주식을 구매한다. = 매일 전량 매수
성민이
- 오늘 이전으로 3일 간 주가가 연속적으로 내려갔다면 = 조건에 맞으면 전량 매수
-오늘 이전으로 3일 간 주가가 연속적으로 올랐다면 = 조건에 맞으면 전량 매도
주가 배열을 순회하면서 위 로직을 처리하게 구현하면 끝난다.
3. C++ 정답 코드
#include <iostream>
#include <vector>
using namespace std;
int main() {
int n;
cin >> n;
vector <int> v(14);
for (auto& i : v)
{
cin >> i;
}
int j_money = n, s_money = n, j_stock = 0, s_stock = 0;
for (int i = 0; i < 14; i++)
{
while (j_money >= v[i]) //준현이
{
j_stock++;
j_money -= v[i];
}
if (2 < i) //성민이
{
if (v[i - 3] < v[i - 2] && v[i - 2] < v[i - 1]) //3일 연속 상승
{
while (s_stock > 0)
{
s_stock--;
s_money += v[i];
}
}
else if (v[i - 3] > v[i - 2] && v[i - 2] > v[i - 1]) //3일 연속 하락
{
while (s_money >= v[i])
{
s_stock++;
s_money -= v[i];
}
}
}
}
int j_result = j_money + j_stock * v[13];
int s_result = s_money + s_stock * v[13];
if (j_result > s_result)
cout << "BNP";
else if (j_result < s_result)
cout << "TIMING";
else
cout << "SAMESAME";
return 0;
}
'🏆 PS(Problem Solving) > Baekjoon' 카테고리의 다른 글
[Node.js] 백준 javascript 2578 빙고 (0) | 2024.05.30 |
---|---|
[C++] 백준 2578 빙고 (0) | 2024.05.30 |
[Node.js] 백준 Javascript 20546 기적의 매매법 (0) | 2024.05.28 |
[C++] 백준 14467 소가 길을 건너간 이유1 (0) | 2024.05.28 |
[Node.js] 백준 Javascript 14467 소가 길을 건너간 이유 1 (0) | 2024.05.28 |