본문 바로가기

코테/구름톤 챌린지

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

728x90

문제

구름 햄버거는 다양한 재료를 사용하여 만들어서 맛있기로 유명하다. 구름 햄버거는 N 개의 재료를 순서대로 쌓아서 만들고, 구름 햄버거의 맛은 사용된 모든 재료의 맛의 정도를 더한 값이다. 완벽한 구름 햄버거를 만들기 위해서는 맛의 정도가 가장 높은 재료를 기준으로 위랑 아래로 갈수록 재료의 맛의 정도가 감소하거나 같아야 한다. 플레이어는 N개의 재료를 순서대로 쌓아서 구름 행버거를 하나 만들었다. i 번째로 쌓은 재료의 맛의 정도가 k 라고 할 때, 플레이어가 만든 구름 햄버거의 맛을 구해보자. 만약 플레이어가 완벽하지 않은 구름 햄버거를 만들었다면 0 을 출력한다.

입력

첫째 줄에 구름 햄버거에 들어가는 재료의 개수 1개가 주어진다.

그다음 줄에 플레이어가 햄버거를 만들 때 쓴 재료의 맛의 정도 k1,,,,kn 가 공백을 두고 주어진다.

  • 1 ≤ N ≤ 1000
  • 1≤ k ≤ 10^6
  • 입력에서 주어지는 모든 수는 정수이다.

출력

플레이어가 만든 구름 햄버거의 맛을 출력한다. 만약 플레이어가 완벽하지 않은 구름 햄버거를 만들었다면 0을 출력한다.

제출 코드

const readline = require('readline');
let rl = readline.createInterface({
	input: process.stdin,
	output: process.stdout,
});
let input=[];
rl.on('line', (line) => {
	input.push(line);
});

rl.on('close', () => {
	const taste = input[1].split(" ").map(Number);
	const max=Math.max(...taste);
	let answer=0;
	let prev=0;
	let increase =true;
	for(let x of taste){
		if((increase && x<prev)||(!increase && x>prev)){
			answer=0;
			break;
		}
		answer+=x;
		prev=x;
		if(x===max) increase=false;
	}
			console.log(answer);
})

배운점

  • 수가 증가하고있음을 어떻게 처리할까 하다가 boolean형으로 조건을 걸어 사용해도 되는 것을 알게 되었다.
  • 배열의 수를 복사하기 위해 전개 연산자(…)를 사용했다.

느낀점

  • 첫 별 2개짜리 문제로 시간이 오래 걸렸던 문제였다.
  • 완벽한 햄버거가 아닌 완벽하지 않은 햄버거를 먼저 처리해서 조금 수월했다.
728x90