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

Crack Alphabets는 JavaScript에서 문제를 해결합니다.

<시간/>

문제

알파벳 두 묶음의 군대가 서로 싸우고 있는 상황을 생각해 보십시오. 두 병사의 무게와 무게는 다음과 같습니다. -

팀A

<일>무게
병사
A
1
B
2
C
3
D
4

팀B

<일>무게
병사
W
1
X
2
Y
3
Z
4

병사들 말고도 '!'로 표시된 투기장에는 폭탄이 있고, 그 옆에는 폭탄이 있는 병사들을 죽일 수 있습니다.

예:'A!BC'는 'C'가 되고 '!!CC!!'는 ''가 됩니다.

우리의 함수는 경기장에 있는 모든 폭탄이 언제 터지면 두 팀이 같은 무게로 끝날 경우 어느 팀이 승리하는지 알아내야 합니다.

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

인 경우

입력

const str = '!WX!YZ!DC!BA!';

출력

const output = 'Tie';

출력 설명

모든 폭탄이 터지면 두 팀 모두 같은 점수로 끝날 것이기 때문입니다.

예시

다음은 코드입니다 -

const str = '!WX!YZ!DC!BA!';
const stringFight = (str) => {
   const map = {
      'D': 4,'C': 3,'B': 2,'A': 1,
      'Z': -4,'Y': -3,'X': -2,'W': -1
   };
   const arr = [];
   const arr1 = str.split('');
      for(let i=0;i<str.length;i++){

      if(arr1[i-1] !== '!' && arr1[i] !== '!' && arr1[i+1] !== '!'){
         arr.push(arr1[i]);
      };
   };
      const sum = arr.reduce((a, b) => a + (map[b] ? map[b] : 0), 0);
      if(sum < 0){
         return 'Team B';
      if(sum < 0){
         return 'Team B';
      }else if(sum > 0){
         return 'Team A';
      }else{
         return 'Tie';
      };
   };
console.log(stringFight(str));

출력

Tie