흥미/코딩테스트

😊 #18 프로그래머스 - 푸드 파이트 대회(Level 1)

RadderNepa 2023. 3. 8. 01:40

[문제]

출처 : https://school.programmers.co.kr
출처 : https://school.programmers.co.kr


[해설]

- 나는 반복문의 노예인가? 풀긴 풀었다.

import java.util.*;
import java.util.ArrayList;
import java.util.Arrays;
import java.util.Comparator;

class Solution {
    public String solution(int[] food) {
        String answer = "";
        List<Integer> list = new ArrayList<Integer>();
        List<Integer> list2 = new ArrayList<Integer>();
        for(int i = 0; i < food.length; i++) {
            if(i == 0) {
                // list.add(0);
            } else if(food[i] > 1 &&  i > 0) {
                int mock = food[i] / 2;
                int foodNum = i;
                while(true) {
                    list.add(foodNum);
                    list2.add(foodNum);
                    mock--;
                    if(mock == 0) break;
                }
            }
        }
        list.add(0);
        list2.sort(Comparator.reverseOrder());
        for(int k : list2) {
            list.add(k);
        }
        for(int n : list) {
            answer += n + "";
        }
        return answer;
    }
}

- 다른 사람 풀이 참고, 진짜 깔끔하고 리소스도 훨씬 적게 들었다.

class Solution {
    public String solution(int[] food) {
        String answer = "0";
        for(int i = (food.length - 1); i >= 0; i--) {
            if(food[i] > 1) {
                int mock = food[i] / 2;
                for(int j = 1; j <= mock; j++) {
                    answer = i + answer + i;
                }
            }
        }
        return answer;
    }
}