[BOJ 27496] 발머의 피크 이론

2024. 9. 21. 21:36Baekjoon

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 11812] K진 트리  (1) 2023.05.27
[BOJ 2186] 문자판  (0) 2023.05.23
[BOJ 11657] 타임머신  (0) 2023.05.21
[BOJ 2878] 캔디캔디  (0) 2023.05.15
[BOJ 9661] 돌 게임 7  (0) 2023.05.15