Notice
Recent Posts
Link
정화 코딩
[C++] 반짝반짝 2 (백준 22984번) 본문
https://www.acmicpc.net/problem/22984
#include <iostream>
#include <vector>
using namespace std;
int main() {
ios_base::sync_with_stdio(0);
cin.tie(0);
cout.tie(0);
int n;
cin >> n;
double ans = 0;
vector<double> p = vector<double>(n);
for (int i = 0; i < n; i++) {
cin >> p[i];
ans += p[i];
}
for (int i = 0; i < n - 1; i++) {
ans += p[i] * (1 - p[i + 1]) + (1 - p[i]) * p[i + 1];
}
cout << fixed;
cout.precision(6);
cout << ans << '\n';
}
각 전구 별로 켜질 확률을 전부 따로 계산한 후 전부 더해서 답을 구했다. 자연스럽게 확률과 통계에서 쓰던 사고 방식이 기댓값의 선형성이라는 알고리즘이었다. 풀이 자체는 어렵지 않았는데 나는 소수점에 맞춰서 출력해야 되는 것 때문에 애를 먹었다. cout을 통해 실수 자료형을 출력하면 (정수 부분 + 소수 부분)이 6자리로 출력된다고 한다. 그래서 그냥 제출하면 틀린다. (오답) cout의 출력 자릿수를 고정해주는 코드를 추가하여 맞을 수 있었다. (정답)
cout 기본 : cout을 통해 실수 자료형을 출력하면 기본적으로 (정수 부분 + 소수 부분)이 6자리로 출력됨.
cout.precision(n); : (정수 부분 + 소수 부분)이 n자리로 출력됨.
cout << fixed; cout.precision(n); : 소수 부분이 n자리로 출력됨.
은채가 풀던 골5 랜디 문제를 같이 풀었다 ㅎㅎ
'PS' 카테고리의 다른 글
[C++] 숨바꼭질 (백준 1697번) (0) | 2024.06.02 |
---|---|
[C++] 쉬운 최단거리 (백준 14940번) (0) | 2024.06.02 |
[C++] 호 안에 수류탄이야!! (백준 15889번) (0) | 2024.05.28 |
[python] 선분 교차 1 (백준 17386번) (0) | 2024.05.26 |
[C++] 좌표 압축 (백준 18870번) (0) | 2024.05.25 |
Comments