String.repeat 이용하기
푸드 파이트 대회 : Level1
https://school.programmers.co.kr/learn/courses/30/lessons/134240
처음 작성한 코드
class Solution {
public String solution(int[] food) {
String str = "";
for (int i = 1; i < food.length; i++) {
for (int j = 0; j < food[i] / 2; j++) {
str += String.valueOf(i);
}
}
StringBuffer sb = new StringBuffer(str);
String revStr = sb.reverse().toString();
str += "0" + revStr;
return str;
}
}
ㄴ 실행 시간이 다소 오래 걸리는 것을 확인하였다.
두 번째 작성한 코드
class Solution {
public String solution(int[] food) {
StringBuilder sb = new StringBuilder();
for (int i = 1; i < food.length; i++) {
sb.append(String.valueOf(i).repeat(food[i] / 2));
}
String answer = sb + "0";
return answer + sb.reverse();
}
}
ㄴ repeat 메서드를 이용하여 for 문을 1개 줄였다.
String.repeat(int count)
String.repeat(int count) 메서드는 주어진 문자열을 지정된 횟수만큼 반복하여 새로운 문자열을 생성한다.
문제점 : 불필요한 반복문으로 인해 시간이 생각보다 많이 걸려서 리팩토링을 하고자했다.
해결 방법 : String.repeat(int count) 을 사용하여 코드를 간결하게 만들어 실행 시간을 단축시켰다.
깨달은 바 : 불필요한 반복문 대신 메서드를 사용할 수 있다면 사용보도록 해야겠다.
'코딩테스트 > programming_JAVA' 카테고리의 다른 글
[Java] baekjoon_1654 : 랜선 자르기 (0) | 2023.12.29 |
---|---|
[Java] baekjoon_1181 : 단어 정렬 (0) | 2023.12.25 |
[Java] 프로그래머스_17681 : [1차] 비밀지도 (0) | 2023.12.17 |
[Java] 프로그래머스_42748 : K번째수 (0) | 2023.12.15 |
[Java] 프로그래머스_12915 : 문자열 내 마음대로 정렬하기 (0) | 2023.12.15 |