1. 내 답안
StringBuilder로 작업했다.
class Solution {
public String solution(int[] food) {
StringBuilder sb = new StringBuilder();
for(int i = 1 ; i< food.length; i++){
sb.append((i+"").repeat(food[i]/2));
}
StringBuilder result = new StringBuilder();
result.append(sb).append("0").append(sb.reverse());
return result.toString();
}
}
2. 다른 분들 답안
문자열 앞뒤에 횟수만큼 새로 덧붙여준다.
class Solution {
public String solution(int[] food) {
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;
}
}
return answer;
}
}
3. 실행 시간 비교
- 아래가 내 코드, 위에가 다른 분 코드이다.
- 내 코드는 stringBuilder를 이용해서 문자열을 추가할 때 속도를 높였다.
- String은 불벽 객체라서 문자를 추가할 때마다 새로운 객체를 생성해서 String 참조변수에 할당한다. 그만큼 시간복잡도와 공간복잡도가 높아질 수 밖에 없다. 역시 알고리즘 풀때만이라도 StringBuilder를 사용하는게 좋다는 것을 한번 더 깨달았다.
'코딩테스트 > Programmers' 카테고리의 다른 글
[프로그래머스] 비밀지도 (0) | 2025.02.28 |
---|---|
[프로그래머스] k번째수 (1) | 2025.02.28 |
[프로그래머스] 숫자 문자열과 영단어 (0) | 2025.02.28 |
[프로그래머스] 두 개 뽑아서 더하기 (0) | 2025.02.28 |
[프로그래머스] 가장 가까운 같은 글자 (0) | 2025.02.26 |