[프로그래머스/Java] 푸드 파이트 대회

Moon·2022년 11월 16일
0
post-thumbnail

🙂 문제

Level1 : 푸드 파이트 대회


💡 풀이

  • StringBuilder로 음식 개수 / 2 만큼 배치해준다.
  • 물('0')을 기준으로 음식이 대칭되기 때문에 reverse()를 이용해 붙여줬다.
class Solution {
    public String solution(int[] food) {
        
        StringBuilder sb = new StringBuilder();
        
        // food[0] : 물 
        for(int i = 1; i < food.length; i++) {
            int division = food[i] / 2;
            
            for(int j = 0; j < division; j++) {
                sb.append(i);
            }
        }
        String answer = sb.toString() + "0" + sb.reverse().toString();
        return answer;
    }
}

나는 문자열을 뒤집어야 한다는 생각만 하느라 reverse() 메서드를 쓰기 위해 StringBuilder를 사용했지만 String으로도 가능하다. 이 방법도 알아둬야 할 것 같다. (연산이 자주 발생하면 시간초과 문제 때문에 StringBuilder를 사용해야 하는 경우가 많다.)

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;
    }
}
profile
매일 성장하는 개발자 되기😊

0개의 댓글