[PRG] - 푸드 파이트 대회(JAVA)
프로그래머스
✅ 문제 제목 : 푸드 파이트 대회 - LV1
🔔 문제 유형 : 연습문제
💬 풀이 언어 : JAVA
⏱️ 풀이 시간 : 10분
🖇️ 문제 링크 : 프로그래머스 문제 링크
💬 문제 정리
문제는 링크를 통해 읽고 오시는 것을 추천드립니다!
2명의 선수가 1:1로 푸드 파이트 대회를 한다.
총food
만큼의 음식이 준비되며,food[i]
는 음식의 개수를 의미한다.
긴 테이블에서 대회를 진행하며 각 선수는 양 끝에서 음식을 먹으며 중앙으로 도달한다.
즉, 중앙을 기점으로 대칭수(팰린드롬)가 이뤄지면 된다고 생각하면 편하다!
⛔️ 주의 사항
-
food[0]
은 물을 의미하며 항상 1임
✏️ 문제 풀이
class Solution {
/**
* @param food 적은 칼로리로 정렬된 음식
* */
public String solution(int[] food) {
String answer = "";
StringBuilder temp = new StringBuilder();
for (int i = 0; i < food.length; i++) {
if(i == 0) {
continue;
}
for (int j = 0; j < food[i] / 2; j++) {
answer += i;
temp.append(i);
}
}
answer += "0" + temp.reverse();
return answer;
}
}
🤔 회고
문자를 뒤집기 위해 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;
}
}
댓글남기기