문제 설명
정수가 담긴 리스트 num_list가 주어집니다. num_list의 홀수만 순서대로 이어 붙인 수와 짝수만 순서대로 이어 붙인 수의 합을 return하도록 solution 함수를 완성해주세요.
제한 사항
2 ≤ num_list의 길이 ≤ 10 1 ≤ num_list의 원소 ≤ 9 num_list에는 적어도 한 개씩의 짝수와 홀수가 있습니다.
나의 코드
class Solution {
public int solution(int[] num_list) {
int answer = 0;
int even = 0;
int odd = 0;
for (int i=0; i<num_list.length; i++) {
if(num_list[i]%2==0) {
even = Integer.parseInt(""+even+num_list[i]);
} else if(num_list[i]%2==1) {
odd = Integer.parseInt(""+odd+num_list[i]);
}
}
answer = even + odd;
return answer;
}
}
다른 사람 코드
class Solution {
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을 곱해서 문제를 해결하는 방법이다. 현재 나로서는 잘 이해가 되지 않는다.. 나중에 좀 더 성장하면 다시 글을 보며 이해해봐야겠다.
느낀 점
프로그래머스 5번째 글에 작성한 더 크게 합치기
문제를 푼 게 큰 도움이 되었다! ""
를 이용해 정수값을 문자열로 바꿔주는거나 Integer.parseInt
메소드를 사용하여 문자열을 정수값으로 바꿔주는 걸 한 줄로 사용하면서 해결하였다.