- 난이도: Lv1
프로그래머스 링크: https://school.programmers.co.kr/learn/courses/30/lessons/134240?language=java
풀이 링크(GitHub): hayannn/CodingTest_Java/프로그래머스/1/134240. 푸트 파이트 대회
풀이 시간 : 23분
import java.util.*;
class Solution {
public String solution(int[] food) {
String answer = "";
Arrays.sort(food);
int mid = food.length / 2;
// 앞부분
for(int i=0; i<food.length; i++){
answer += food[i];
String.valueOf(i).repeat(mid);
}
answer = answer + '0';
//뒷부분
for(int i=mid; i<food.length; i++){
answer += food[i];
}
return answer;
}
}
//before
Arrays.sort(food);
int mid = food.length / 2;
// 앞부분
for(int i=0; i<food.length; i++){
answer += food[i];
String.valueOf(i).repeat(mid);
}
answer = answer + '0';
//뒷부분
for(int i=mid; i<food.length; i++){
answer += food[i];
}
//after
Arrays.sort(food);
String first = "";
String second = "";
// 앞부분
for (int i = 1; i < food.length; i++) {
for (int j = 0; j < food[i] / 2; j++) {
first += i;
}
}
first += '0';
//뒷부분
for (int i = food.length - 1; i > 0; i--) {
for (int j = 0; j < food[i] / 2; j++) {
second += i;
}
}
먼저 정렬을 할 경우, 테스트 2번 미통과 -> 정렬은 하지 않는 것으로 변경해 통과
정렬 진행 시 테스트
정렬 제거 시 테스트
풀이 시간 : 55분(첫 풀이 시간 포함)
import java.util.*;
class Solution {
public String solution(int[] food) {
//Arrays.sort(food);
String first = "";
String second = "";
//int mid = food.length / 2;
// 앞부분
for (int i = 1; i < food.length; i++) {
for (int j = 0; j < food[i] / 2; j++) {
first += i;
}
}
first += '0';
//뒷부분
for (int i = food.length - 1; i > 0; i--) {
for (int j = 0; j < food[i] / 2; j++) {
second += i;
}
}
String answer = first + second;
return answer;
}
}
iclass Solution {
public String solution(int[] food) {
// 음식을 순서대로 담을 StringBuilder 선언
StringBuilder sb = new StringBuilder();
for (int i = 1; i < food.length; i++) {
// i번 음식을 2로 나눈 개수만큼 StringBuilder에 추가
int count = food[i] / 2;
sb.append(String.valueOf(i).repeat(count));
}
// StringBuilder에 추가된 음식에 0과 reverse된 문자열 더하기
String answer = sb + "0";
answer += sb.reverse();
return answer;
}
}