푸드 파이트 대회

RyuIsangGo🤘·2023년 8월 23일
0

문제


나의코드

const solution = (food) => {
    let leftResult = '';
    food.forEach((x, i) => {
        if(i >= 1) {
         leftResult += `${i}`.repeat(Math.floor(x/2));
        }
    });
   let rightResult = [...leftResult].reverse().join('');
   return leftResult + '0' + rightResult;
}

로직흐름

반환값은 0을 기준으로 뒤집은 모습이다. 따라서, 0을 기준으로 왼쪽 문자열을 leftResult로 놓는다.
food의 1번째 인덱스부터 인덱스를 i라 놓고 끝인덱스까지 순회한다.
i가 몇번 반복되냐면, Math.floor(food[i]/2)번 반복된다.
따라서 i를 문자열로 만들고 repeat 메소드를 이용해서 Math.floor(food[i]/2)번 반복한뒤 leftResult에 놓는다.
이렇게 순회를 마치면 0바로 직전까지의 leftResult가 만들어진다.
이것을 배열로 바꾸고 reverse메소드, join메소드를 사용해서 뒤집은 다음 문자열로 바꾼 값을 rightResult로 놓는다.
leftResult + '0' + rightResult을 반환한다.

profile
이전 블로그 입니다.

0개의 댓글