다소 어려운 문제였습니다. 다음에 유의하여 문제를 풀어야만 합니다.
1. 꼭 살아남는 풍선은 어떤것인가?
2. 살아남는 풍선들을 기준으로 나눌수 있는 3 영역에서는 어떤 규칙을 고려하여 풍선이 살아남는가?
3. 흩어지는 방향으로 정렬이 되어 있는것이 오래 살아남는다.
function solution(a) {
var answer = 2;
// 가장 작은 값과 두번째로 작은 값을 찾는다.
let smallest_number = Number.POSITIVE_INFINITY;
let smallest_number_index = -1;
let second_smallest_number = Number.POSITIVE_INFINITY;
let second_smallest_number_index = -1;
// 가장 작은 값 찾기
for(let i=0; i< a.length; i++){
if(a[i] <smallest_number){
smallest_number = a[i]
smallest_number_index = i
}
}
//두번째로 작은 값 찾기
for(let i=0; i< a.length; i++){
if(smallest_number < a[i] && a[i] < second_smallest_number){
second_smallest_number = a[i]
second_smallest_number_index = i
}
}
// 비교
const [key1 , key2] = [second_smallest_number_index,smallest_number_index ].sort((a,b)=>a-b)
// 좌측 확인
let leftMin = Number.POSITIVE_INFINITY;
for(let i = 0; i < key1; i++){
if(a[i] < leftMin){
answer++;
leftMin = a[i];
}
}
// 우측 확인
let rightMin = Number.POSITIVE_INFINITY;
for(let i = a.length-1; i>key2; i--){
if(a[i] < rightMin){
answer++;
rightMin = a[i];
}
}
return answer;
}