이어 붙인 수

nacSeo (낙서)·2024년 1월 8일
0

프로그래머스

목록 보기
17/169

문제 설명

정수가 담긴 리스트 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 메소드를 사용하여 문자열을 정수값으로 바꿔주는 걸 한 줄로 사용하면서 해결하였다.

profile
백엔드 개발자 김창하입니다 🙇‍♂️

0개의 댓글