Algorithm/프로그래머스

푸드 파이트 대회

문제 파악 및 재정의


푸파 -> 1 : 1 -> 음식 종류와 양이 바뀜 
| -> [물] <- |
3가지 음식 적은 순 1[3]/2[4]3[6]

1223330333221 ... 1


알고리즘 및 자료구조 선택

순회 / 문자열


구현

홀수일 경우 -1 후 해당 index를 앞 뒤로 배치
StringBuilder로 add?
1223330333221
food 배열을 순회하며 조건의 앞단만 작성
ex) 122333
해당 문자열을 저장 / reverse
return 문자열 + 0 + reverse



import java.util.*;
class Solution {
    public String solution(int[] food) {
        
        String answer = "";
        String reverse;
        String temp;
        StringBuilder stringBuilder = new StringBuilder();

        for(int idx = 1; idx < food.length; idx++) {
            food[idx] = food[idx] % 2 == 0 ? food[idx] / 2 : (food[idx] - 1) / 2;
            if(food[idx] > 0) {
                String tempIdx = idx+"";
                stringBuilder.append(tempIdx.repeat(food[idx]));
            }
        }
        temp = stringBuilder.toString();
        reverse = stringBuilder.reverse().toString();
        answer = temp + "0" + reverse;
        
        
        
        return answer;
    }
}

 

회고

 

class Solution {
    public String solution(int[] food) {
        String answer = "0";

        for (int i = food.length - 1; i > 0; i--) {
            for (int j = 0; j < food[i] / 2; j++) {
                answer = i + answer + i; 
            }
        }

        return answer;
    }
}

'Algorithm > 프로그래머스' 카테고리의 다른 글

신규 아이디 추천  (0) 2023.03.17
혼자서 하는 틱택토  (0) 2023.03.16
가장 가까운 같은 글자  (0) 2023.02.28
[프로그래머스] 부족한 금액 계산하기  (0) 2021.08.11
[프로그래머스] 상호 평가  (0) 2021.08.11