1. StringBuilder를 사용
public int solution(int[] num_list) {
StringBuilder even = new StringBuilder();
StringBuilder odd = new StringBuilder();
for(int i = 0; i < num_list.length; i++) {
if(num_list[i] % 2 == 0) {
even.append(num_list[i]);
} else {
odd.append(num_list[i]);
}
}
int evenSum = Integer.parseInt(even.toString());
int oddSum = Integer.parseInt(odd.toString());
return evenSum + oddSum;
}
숫자를 더하는게 아니라 이어붙여야하므로 문자열과 문자열을 이어붙이는 방식으로 처리할 수 있다.
만약 위의 코드처럼 숫자를 더하려면 문자열을 정수로 형변환을 해야 가능.
2. 숫자 10을 곱해서 숫자를 이어 붙일 수 있음.
public int solution(int[] num_list) {
int answer = 0;
int even = 0;
int odd = 0;
for(int num : num_list) {
if(num % 2 == 0) {
even *= 10;
even += num;
} else {
odd *= 10;
odd += num;
}
}
answer = even + odd;
return answer;
}
프로그래머스에서 다른 사람이 푼 걸 보고 가져왔는데, 위의 코드와 같이 10을 곱한 후 num을 더하면 숫자를 이어붙일 때와 같은 결과값이 나오게됨. 보고 이런 방법이 있었구나 감탄함ㄷㄷㄷㄷ
'JAVA' 카테고리의 다른 글
| System.arraycopy() (0) | 2024.03.21 |
|---|---|
| 메서드 정의 (0) | 2024.03.06 |