프로그래머스

자바스크립트 푸드파이터 대회

늘곰's 2023. 9. 29. 00:20
//푸드파이터 대회

function solution(food) {
  let answer = "";
  // 12233 이런식으로 숫자를 표현해야되기 떄문에 문자열로 바꿈
  for (let i = 1; i < food.length; i++) {
    answer += String(i).repeat(Math.floor(food[i] / 2));
  }

  // 서로 양쪽에서 같은 순서로 음식을 먹어야하기 때문에 reverse 매소드를 사용
  //console.log(answer); //122333
  //console.log([...answer].join("")); //122333
  //console.log([...answer].reverse().join("")); //333221
  // [...answer] 로 배열로 만들고 그 배열의 뒤집고 난후에 join으로 배열을 품
  return answer + "0" + [...answer].reverse().join("");
}

console.log(solution([1, 3, 4, 6])); // "1223330333221"
//console.log(solution([1, 7, 1, 2])); // "111303111"

// 다른 정답
// function solution(food) {
//   var arr = [0];

//   for (let i = food.length; i > 0; i--) {
//     let a = Math.floor(food[i] / 2);
//     // 4 3 2 1
//     // 3 2 1
//     console.log(a);
//     for (let j = 0; j < a; j++) {
//       arr.push(i);

//       arr.unshift(i);
//     }
//   }

//   return arr.join("");
// }

// console.log(solution([1, 3, 4, 6]));