Computer >> 컴퓨터 >  >> 프로그램 작성 >> JavaScript

JavaScript에서 최종 이동 방향 찾기

<시간/>

문제

첫 번째이자 유일한 인수로 단일 문자 배열인 arr을 취하는 JavaScript 함수를 작성해야 합니다.

배열은 4개의 문자만 포함할 수 있으며 다음과 같습니다. -

  • 'N' → 북쪽 방향을 나타냄
  • 'S' → 남쪽 방향을 나타냄
  • 'W' → 서쪽 방향을 나타냄
  • 'E' → 동쪽 방향을 나타냄

각 문자는 특정 방향으로의 단위 거리 이동을 지정합니다. 그리고 배열의 어느 곳에서나 반대 방향 [('S'와 'N') 또는 ('E'와 'W')]이 인접하게 나타나면 서로의 움직임을 상쇄합니다. 따라서 우리 함수는 결과적으로 전체 배열의 이동 방향을 찾아야 합니다.

예를 들어, 함수에 대한 입력이 -

인 경우
const arr = ['N', 'S', 'S', 'E', 'W', 'N', 'W'];

그러면 출력은 다음과 같아야 합니다. -

const output = 'W';

출력 설명

'N'과 'S'는 서로를 취소하고 'E'와 'W'는 서로를 취소하고 마지막으로 'N'과 'S'는 서로 취소하여 'W'만 남깁니다.

예시

다음은 코드입니다 -

const arr = ['N', 'S', 'S', 'E', 'W', 'N', 'W'];
const cancelDirections = (arr = []) => {

   let str = arr.join('');
   while(str.includes('NS') || str.includes('SN') || str.includes('EW')
|| str.includes('WE')){
      str = str.replace('NS', '');
      str = str.replace('SN', '');
      str = str.replace('EW', '');
      str = str.replace('WE', '');
   };
   return str.split('');
};
console.log(cancelDirections(arr));

출력

다음은 콘솔 출력입니다 -

['W']