Today's Codekata
// 최댓값과 최솟값
public class Solution {
public String solution(String s) {
String[] parts = s.split(" ");
int min = Integer.MAX_VALUE;
int max = Integer.MIN_VALUE;
for (String part : parts) {
int num = Integer.parseInt(part);
min = Math.min(min, num);
max = Math.max(max, num);
}
return min + " " + max;
}
}
// JadenCase 문자열 만들기
public class Solution {
public String solution(String s) {
StringBuilder sb = new StringBuilder();
boolean upper = true;
for (char c : s.toCharArray()) {
if (c == ' ') {
sb.append(c);
upper = true;
} else if (upper) {
sb.append(Character.toUpperCase(c));
upper = false;
} else {
sb.append(Character.toLowerCase(c));
}
}
return sb.toString();
}
}
`String`은 불변이라서 문자열을 수정할 때마다 새 객체를 생성하지만 `StringBuilder`는 내부 버퍼를 사용해 기존 객체를 수정하므로 훨씬 효율적이다. 반복문에서 문자열을 계속 더할 때 사용하면 메모리 낭비도 줄고 실행 속도도 향상된다. 알고리즘 문제를 풀 때 자주 사용하면서 점점 친숙해질 것 같다. 짧지만 오늘도 한줄씩 공부한 흔적을 남겨본다!