본문 바로가기
Algorithm/BOJ

[백준/BOJ] 17211번 - 좋은 날 싫은 날 (C++)

by shine-jung 2022. 3. 26.
반응형

문제 링크


코드

#include <bits/stdc++.h>
using namespace std;

int main(void) {
    ios::sync_with_stdio(0);
    cin.tie(0);
    int n, curr;
    double gg, gb, bg, bb;
    vector<double> good, bad;
    cin >> n >> curr;
    cin >> gg >> gb >> bg >> bb;
    if (curr == 0) {
        good.push_back(gg);
        bad.push_back(gb);
    }
    else {
        good.push_back(bg);
        bad.push_back(bb);
    }
    for (int i = 1; i < n; i++) {
        good.push_back(good[i-1] * gg + bad[i-1] * bg);
        bad.push_back(good[i-1] * gb + bad[i-1] * bb);
    }
    cout << fixed;
    cout.precision(0);
    cout << good[n-1] * 1000 << '\n' << bad[n-1] * 1000;
}



설명


좋은 날 -> 좋은 날일 확률을 gg, 좋은 날 -> 싫은 날일 확률을 gb,

싫은 날 -> 좋은 날일 확률을 bg, 싫은 날 -> 싫은 날일 확률을 bb 라고 하면,

n번째 날에 좋은 날일 확률 = n-1번째 날에 좋은 날일 확률 * gg + n-1번째 날에 싫은 날일 확률 * bg

n번째 날에 싫은 날일 확률 = n-1번째 날에 싫은 날일 확률 * gb + n-1번째 날에 좋은 날일 확률 * bb 이다.




(주의) 기록용으로 작성한 글입니다. 좋은 코드가 아닐 수 있습니다.

댓글 환영합니다!


반응형

댓글