
😎풀이
- 숫자 배열이 엄격한 오름차 순인지 판별하는
isInc 정의
- 숫자 배열이 엄격한 내림차 순인지 판별하는
isDec 정의
nums 2중순회
3-1. 0부터 p까지의 범위가 오름차 순이며, 2개 이상의 요소인지 판별
3-2. p부터 q까지의 범위가 내림차 순이며, 2개 이상의 요소인지 판별
3-3. q부터 n - 1까지의 범위가 오름차 순이며, 2개 이상의 요소인지 판별
3-4. nums가 Trionic 배열이므로, true 반환
nums가 Trionic 배열이 아니므로, false 반환
function isTrionic(nums: number[]): boolean {
const n = nums.length
for(let p = 0; p < n - 2; p++) {
const pRange = nums.slice(0, p + 1)
if(!isInc(pRange) || pRange.length < 2) continue
for(let q = p + 1; q < n - 1; q++) {
const qRange = nums.slice(p, q + 1)
if(!isDec(qRange) || qRange.length < 2) continue
const rRange = nums.slice(q)
if(!isInc(rRange) || rRange.length < 2) continue
console.log({pRange, qRange, rRange})
return true
}
}
return false
};
function isInc(nums: number[]) {
for(let i = 1; i < nums.length; i++) {
if(nums[i] <= nums[i - 1]) return false
}
return true
}
function isDec(nums: number[]) {
for(let i = 1; i < nums.length; i++) {
if(nums[i] >= nums[i - 1]) return false
}
return true
}