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을 반환한다.