[구름톤 챌린지] 완벽한 햄버거 만들기

ppparkta·2023년 8월 17일
1

완벽한 햄버거 만들기

문제

풀이

조건문으로 분기만 적절히 해주면 금방 풀 수 있는 문제였다.

이런 문제를 풀 때 답으로 나올 수 있는 범위를 잘못 구해서 틀리는 경우가 종종 있었는데, 이 문제같은 경우는 입력받는 k가 10의 6승이고 n의 최대값이 1000이므로 정답으로 나올 수 있는 최대값이 10^9이 되는데, 이 값은 정수형으로 충분히 표현할 수 있는 범위이기 때문에 처음부터 답을 int형으로 잡고 풀었다.

특정 지점을 기반으로 플래그를 만들어서 값이 오르는구간/내리는구간을 구분했다. 플래그를 쓰니까 분기 세우기가 간단해져서 금방 풀었다.

굳이 백터를 쓴 이유는 문제를 잘못 이해했기 때문인데...n의 최대값이 1000이므로 배열을 써도 된다. 중간에 깨달았는데 오랜만에 백터 연습할 겸 백터로 풀었다.

#include <iostream>
#include <vector>
using namespace std;

int main() {
	int	n, k, ans=0,flag=0;
	vector<int> v;
	cin>>n;
	for(int i=0;i<n;i++){
		cin>>k;
		v.push_back(k);
		ans+=k;
		if (i==0)
			continue;
		if (!flag && v[i-1]<=k)
			continue;
		else if (!flag && v[i-1]>=k){
			flag=1;
			continue;
		}
		else if (flag && v[i-1]<k)
		{
			cout<<0;
			return (0);
		}
		else if (flag && v[i-1]>=k){
			continue;
		}
	}
	cout<<ans;
	return 0;
}
profile
겉촉속촉

0개의 댓글