
처음에 food 배열 숫자가 이해가 안돼서 생각해보다가
0번째 인덱스가 물이고 그 다음 순차적으로 1번 음식의 수, 2번 음식의 수, 3번 음식의 수 라는 것을 깨달음!
두 선수가 동일한 음식의 양을 나눠먹어야 하기 때문에
음식의 수가 모두 짝수여야 한다.
총 음식의 수를 반으로 나누어서
중앙에는 0을 중심으로 왼쪽, 오른쪽(숫자뒤집기) 동일해야한다.
해당 문제에서는 음식 양의 칼로리가 적은 순서대로 배열에 담아주기 때문에 따로 정렬을 하지 않아도 된다.
class Solution {
public String solution(int[] food) {
String left = "";
String right = "";
for(int i=1; i<food.length; i++){
for(int j=0; j<food[i]/2; j++){
left += Integer.toString(i);
}
}
for(int i = left.length()-1; i>=0; i--){
right += left.charAt(i);
}
left += "0";
return left+right;
}
}
물)을 중심으로 1,2,3번째 음식의 수의 절반 만큼 left 에 먼저 저장left 의 마지막숫자부터 차례대로 right에 저장left와 right 사이에 0(물) 저장class Solution {
public String solution(int[] food) {
String left = "";
String right = "";
for(int i=1; i<food.length; i++){
for(int j=0; j<food[i]/2; j++){
left += Integer.toString(i);
}
}
StringBuffer sb = new StringBuffer(left);
right = sb.reverse().toString();
left += "0";
return left+right;
}
}
물)을 중심으로 1,2,3번째 음식의 수의 절반 만큼 left 에 먼저 저장left에 저장한 순서를 뒤집기 하면 되기 때문에StringBuffer 의 reverse()를 사용해서 right에 저장!left와 right 사이에 0(물) 저장