[BOJ 27496] 발머의 피크 이론
2024. 9. 21. 21:36ㆍBaekjoon
728x90
- 문제 요약
발머의 피크 이론이란 혈중 알코올 농도 C가 (0.129 <= C <= 0.138)일때 초인적인 프로그래밍 능력을 가지게 된다는 이론이다. 기령이는 발머의 피크 이론 신봉자이기 때문에 지금부터 코딩테스트를 볼 때까지 혈중 알코올 농도를 최대한 지키려고 한다. 기령이는 매 시간마다 정해진 술을 섭취하며, 섭취한 알코올은 일정 시간이 지나면 분해된다. 기령이가 지금부터 코딩테스트를 볼 때까지 얼마나 혈중 알코올 농도를 0.129와 0.138 사이로 지킬 수 있는지 알아내보자. 단, 혈중 알코올 농도 증가량은 술에 포함된 알코올의 양 A x 0.001로 계산하며 최초의 혈중 알코올 농도는 0이다.
- 알고리즘 정리
알코올의 양을 입력받으면서, 그때그때 if문으로 비교해 주면 됩니다.
(혈중 알코올 농도가 유지되는 시간을 result에 더해주면서 반복문 계속 돌려주기)
- 코드 작성
#include<bits/stdc++.h>
using namespace std;
#define MAX 1000001
typedef long long ll;
int n,l,result;
ll sum;
int main(){
ios_base::sync_with_stdio(false);
cin.tie(NULL);
cout.tie(NULL);
cin>>n>>l;
vector<int>v(n,0);
for(int i=0;i<n;i++){
cin>>v[i];
sum+=v[i];
if(i>=l){
sum-=v[i-l];
}
if(sum>=129&&sum<=138){
result++;
}
}
cout<<result;
}

새벽에 잠에 취한 상태로 문제 풀다 보니까, 갑자기 발머의 피크 이론이 생각나서...ㅋㅋ
구글에 검색해 보니까 이 문제가 있더군요.
문제 제목이 재밌어서 풀어봤습니다 :D
728x90
'Baekjoon' 카테고리의 다른 글
[BOJ 2225] 합분해 (0) | 2024.11.18 |
---|---|
[BOJ 1074] Z (0) | 2024.11.18 |
[BOJ 11812] K진 트리 (1) | 2023.05.27 |
[BOJ 2186] 문자판 (0) | 2023.05.23 |
[BOJ 11657] 타임머신 (0) | 2023.05.21 |