ALGORITHM/코딩 기초 트레이닝

[프로그래머스]이어 붙인 수

jki09871 2024. 7. 31. 15:29

 

아무리 쉬운 코드도 리뷰 합니다.
문제 설명
정수가 담긴 리스트 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

입출력 예 설명
입출력 예 #1
홀수만 이어 붙인 수는 351이고 짝수만 이어 붙인 수는 42입니다. 두 수의 합은 393입니다.

입출력 예 #2
홀수만 이어 붙인 수는 573이고 짝수만 이어 붙인 수는 8입니다. 두 수의 합은 581입니다.
 ----------------------------------------------------------------------------------
 class Solution {
       public int solution(int[] num_list) {
        int answer = 0;
        String odd = "";
        String even = "";

        for(int num : num_list){
            if (num % 2 == 1){
                odd += "" + num;
            } else {
                even += "" + num;
            }
        }
        int parseIntOdd = Integer.parseInt(odd);
        int parseIntEven = Integer.parseInt(even);
        answer = parseIntOdd + parseIntEven;
        
        return answer;
    }
}

설명

  1. for each(반복문) 을 통해 num_list에 담겨있는 값 들을 변수 num에 하나씩 담아줍니다.
  2. if(조거문)을 이용해 변수 num에 담겨있는 값들이 %2로 나누어 홀,짝수를 나누어 담습니다.
  3. 변수 odd 와 even은 문자열 타입이기 때문에 변수 num에 담겨있는 값들을 
     " " + 를 이용해 문자로 인식하게 하고 odd(홀수), even(짝수) 결과 값을 담습니다.
  4. 예전에 배웠던 Integer.parseInt()를 이용해 문자열 타입을 숫자로 변경 해줍니다.

중요코드

  • 변수 num에 담겨있던 값을 %2로 나누어 홀,짝 구분을 했고
    Integer.parseInt()를 이용해 다시 숫자로 변환 한것이 중요코드이다

실행결과

정확성 테스트
테스트 1 통과 (10.84ms, 73.3MB)
테스트 2 통과 (13.60ms, 81.9MB)
테스트 3 통과 (11.72ms, 73.9MB)
테스트 4 통과 (11.72ms, 78.9MB)
테스트 5 통과 (13.27ms, 78.7MB)
테스트 6 통과 (10.40ms, 79.2MB)
테스트 7 통과 (13.03ms, 87.9MB)
테스트 8 통과 (12.33ms, 85.7MB)
테스트 9 통과 (9.44ms, 78.7MB)
테스트 10 통과 (9.93ms, 73.6MB)
테스트 11 통과 (10.85ms, 73MB)
테스트 12 통과 (11.53ms, 78.3MB)
테스트 13 통과 (12.12ms, 81.5MB)
테스트 14 통과 (9.28ms, 74.1MB)
테스트 15 통과 (12.66ms, 83.9MB)
테스트 16 통과 (12.22ms, 76.8MB)
테스트 17 통과 (11.04ms, 84.3MB)
테스트 18 통과 (15.96ms, 76.9MB)
테스트 19 통과 (11.18ms, 82.6MB)
테스트 20 통과 (9.87ms, 77.5MB)
채점 결과
정확성: 100.0
합계: 100.0 / 100.0