본문 바로가기
알고리즘 문제/프로그래머스_Lv1 도장깨기

[프로그래머스] 푸드 파이트 대회 (Javascript)

by 스코필 2025. 1. 12.

문제 링크

https://school.programmers.co.kr/learn/courses/30/lessons/134240

 

프로그래머스

SW개발자를 위한 평가, 교육, 채용까지 Total Solution을 제공하는 개발자 성장을 위한 베이스캠프

programmers.co.kr

 

문제 설명

수웅이는 매달 푸드 파이트 대회를 개최합니다. 대결 방식은 한 선수는 제일 왼쪽에 있는 음식부터 오른쪽으로, 다른 선수는 제일 오른쪽에 있는 음식부터 왼쪽으로 순서대로 먹는 방식으로 진행됩니다. 중앙에는 물을 배치하고, 물을 먼저 먹는 선수가 승리하게 됩니다. 이때, 대회의 공정성을 위해 두 선수가 먹는 음식의 종류와 양이 같아야 하며, 음식을 먹는 순서도 같아야 합니다. 또한, 이번 대회부터는 칼로리가 낮은 음식을 먼저 먹을 수 있게 배치하여 선수들이 음식을 더 잘 먹을 수 있게 하려고 합니다.

준비한 음식의 양을 칼로리가 적은 순서대로 나타내는 정수 배열 food가 주어졌을 때, 대회를 위한 음식의 배치를 나타내는 문자열을 리턴하는 함수를 완성하세요. 

제한 사항

  • 2 <= food의 길이 <= 9
  • 1 <= food의 각 원소  <= 1,000
  • food에는 칼로리가 적은 순서대로 음식의 양이 담겨 있습니다.
  • food[i]는 i번 음식의 수입니다.
  • food[0]은 수웅이가 준비한 물의 양이며, 항상 1입니다.
  • 정답의 길이가 3 이상인 경우만 입력으로 주어집니다.

 

✅ Code - 성공

function solution(food) {    
    let left_foods = '', right_foods = '';
    
    for (let i = 1; i < food.length; i++) {
        const cnt = parseInt(food[i] / 2);
        left_foods += String(i).repeat(cnt);
        right_foods = String(i).repeat(cnt) + right_foods;
    }
        
    return left_foods + '0' + right_foods;
}