프로그래머스/Lv. 0(코딩 기초 트레이닝)

[프로그래머스 코딩테스트] 이어 붙인 수(Java)

Sigfriede 2023. 5. 5. 01:20

  문제 설명

  정수가 담긴 리스트 num_list가 주어집니다. num_list의 홀수만 순서대로 이어 붙인 수와 짝수만 순서대로 이어 붙인 수와 짝수만 순서대로 이어 붙인 수의 합을 return 하도록 solution 함수를 완성해주세요.

 

  제한사항

  • 2 <= num_list의 길이 <= 10
  • 1 <= num_list의 원소 <= 9
  • num_list에는 적어도 한 개씩의 짝수와 홀수가 있습니다.

 

  입출력 예

num_list result
[3, 4, 5, 2, 1] 393
[5, 7, 8, 3] 581
class Solution {
    public int solution(int[] num_list) {
        int answer = 0;
        String odd = "";
        String even = "";
        for (int i = 0; i < num_list.length; i++) {
            if (num_list[i] % 2 == 0) {
                even += Integer.toString(num_list[i]);
            } else {
                odd += Integer.toString(num_list[i]);
            }
        }
        answer = Integer.parseInt(even) + Integer.parseInt(odd);
        return answer;
    }
}

  숫자를 붙일 odd와 even 변수를 만듭니다. for문이 num_list의 길이만큼 순회합니다. 만약 num_list의 i번째 인덱스를 2로 나눈 나머지가 0이라면, 즉 짝수라면 even 변수에 num_list의 i번째 인덱스를 더해줍니다. 다만 수학적 덧셈이 아닌, 문자열끼리 더하는 방식을 요구하므로 toString 메소드로 문자열로 변환 후 더해줍니다. 만약 홀수라면 odd 변수에 같은 방식으로 더해줍니다.

  이렇게 구한 값을 다시 parseInt 메소드로 정수형으로 변경 후 짝수 변수와 홀수 변수를 더하여 answer에 할당합니다.