프로그래머스 Level1 푸드 파이터 대회 (Java)

한승현·2023년 1월 1일
0

programmers

목록 보기
7/22
  • https://school.programmers.co.kr/learn/courses/30/lessons/134240

  • 문제

    • 푸드파이터 대회가 있다. 공정성을 위해 음식을 다음 규칙에 따라 배치해야 한다.
    1. 칼로리가 낮은 순으로 음식을 배치해야 한다.
    2. 선수는 각각 왼쪽과 오른쪽에서부터 시작한다.
    3. 가운데는 물이며, 선수들이 동일한 음식을 먹을 수 있게 배치해야 한다.
    4. 물은 칼로리가 0이며, 물을 먼저 마신 선수가 이긴다.
  • 제한조건

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

    public class Solution {
        public String solution(int[] food) {
            String answer = "0";
            for(int i = food.length-1; i >= 0; i--) {
                String curFood = Integer.toString(i);
                int cnt = food[i]/2;
                answer = curFood.repeat(cnt) + answer + curFood.repeat(cnt);
            }
            return answer;
        }
    }
    
  • 풀이

    • 문자열을 다루는 문제다. 각 food에 담긴 것은 음식의 횟수이다. 각 선수는 해당 칼로리의 횟수의 절반을 먹게 된다. 따라서 food[i]/2만큼 문자열을 반복해서 양쪽에 붙이면 된다.
profile
사람을 만족시켜줄 수 있는 개발자

0개의 댓글