상세 컨텐츠

본문 제목

[리트코드] Vaild Mountain Array

카테고리 없음

by 겨리! 2023. 4. 6. 16:44

본문

 

 

https://leetcode.com/explore/learn/card/fun-with-arrays/527/searching-for-items-in-an-array/3251/

 

Explore - LeetCode

LeetCode Explore is the best place for everyone to start practicing and learning on LeetCode. No matter if you are a beginner or a master, there are always new topics waiting for you to explore.

leetcode.com

 

주어진 Array가 산 모양을 이루는지 체크해서 true or false를 리턴하는 문제

삽질을 많이 해서 기록 😅

처음엔 가장 큰 값의 index를 찾아서 그걸 기준으로 배열을 나눠 오름차순인지 내림차순인지 체크하려고 했으나...코드가너무 복잡해졌다. 

결국 다른 풀이를 봤는데..각 변수를 만들어서 앞뒤의 값을 비교하여 처리하면 되는 거였음..🙄🙄;;

 

풀이방법

/**
 * @param {number[]} arr
 * @returns {boolean}
 */

const vaildMountainArray = function(arr){

	if(arr.length < 3) return false;

	let increase = false;
	let decrease = false;

	for(let i = 1; i < arr.length; i++){
		// 같은 값이 연속으로 있다면 산이 될 수 없음.
		if(arr[i] === arr[i-1]) return false;

		// 앞의 값들이 오름차순인지 체크 
		if(arr[i] > arr[i-1]){
			// 오름차순 후에 내림차순 처리가 되어야함 
			// -> 내림차순 처리 후에 오름차순 처리를 하게되면 산이 될 수 없음 
			if(decrease) return false;

			increase = true;
		}
		if(arr[i] < arr[i-1]) decrease = true;
	}
	// array가 산 모양이라면 값은 둘다 true
	return increase && decrease;
}

 

댓글 영역