function dirReduc(arr){
const obj = {
"NORTH" : 0,
"SOUTH" : 1,
"WEST" : 3,
"EAST" : 4
};
for(let i=0;i<arr.length-1;i++){
if (Math.abs(obj[arr[i]]-obj[arr[i+1]]) === 1 ) {
arr.splice(i,2)
i = -1 ;
}
}
return arr
}
NORTH, SOUTH, WEST, EAST
의 프로퍼티를 가지는 obj
을 선언했다. 이는 인자로 받은 arr
을 for문으로 반복문을 돌릴 때, 서로 인접한 두개의 배열 요소 문자열을 숫자로 치환하여 두 값의 차이가 1이나면 배열에서 삭제시키기 위해 설정했다. 삭제가되면, 다시 배열의 맨처음부터 반복하도록 i
를 초기화 했다.
이 문제를 푸는데 굉장히 오래 걸렸다.. 전혀 어렵지 않은데 그냥 머리가 안돌아갔다. 처음에는 문제를 잘못읽었고, 그다음에는 문제를 잘못 이해했고,,,