- 문제 내용 : tree node를 주고 해당 tree의 depth에 따라서 형제간에 값이 다음 룰을 따른다
- 양수 Depth : 음수로 이루어져 있고 오름차순 정렬이다.
- 음수 Depth : 양수로 이루어져 있고 내림 차순 정렬이다.
- 접근 방법
BFS를 통해서 처리 하면된다.
var isEvenOddTree = function(root) {
let depth = 0;
let queue = new Array();
queue.push(root);
while(queue.length){
let size = queue.length;
let tmpArray = new Array();
for(let i = 0; i < size; i++){
let node = queue.shift();
if(node != null) {
tmpArray.push(node.val);
queue.push(node.left);
queue.push(node.right);
}
}
if(tmpArray.length === 0) break;
if(depth%2){ //odd
if(!oddCheck(tmpArray)) return false;
} else { //even
if(!evenCheck(tmpArray)) return false;
}
depth++;
}
return true;
function evenCheck(arr){ //홀수여야함
let value = arr[0];
if(value % 2 === 0) return false;
for(let i = 1; i < arr.length; i++){
if(!(value < arr[i] && arr[i] % 2)) return false;
value = arr[i];
}
return true;
}
function oddCheck(arr){ //짝수여야함
let value = arr[0];
if(value % 2 !== 0) return false;
for(let i = 1; i < arr.length; i++){
if(!(value > arr[i] && (arr[i] % 2) === 0)) return false;
value = arr[i];
}
return true;
}
};
728x90
반응형
'Problem Solving' 카테고리의 다른 글
Remove Covered Intervals (0) | 2020.10.04 |
---|---|
Maximum Number of Visible Points (0) | 2020.10.04 |
Special Array With X Elements Greater Than or Equal X (0) | 2020.10.04 |
Minimum One Bit Operations to Make Integers Zero (2) | 2020.10.04 |
K-diff Pairs in an Array (0) | 2020.10.03 |