코딩테스트/프로그래머스

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

블로그 주인장 2023. 8. 10.

목차


    📢 문제 출처


    ⏰ 문제 설명

    • 정수가 담긴 리스트 num_list가 주어집니다. 
    • num_list의 홀수만 순서대로 이어 붙인 수와 짝수만 순서대로 이어 붙인 수의 합을 return

    ⏰ 입출력 예시

    • 입출력 예 #1
    • (1) 홀수만 이어 붙인 수는 351이고 짝수만 이어 붙인 수는 42입니다. 두 수의 합은 393입니다. 
    • 입출력 예 #2
    • (1) 홀수만 이어 붙인 수는 573이고 짝수만 이어 붙인 수는 8입니다. 두 수의 합은 581입니다

    ⏰ 풀이

    class Solution {
        public int solution(int[] num_list) {
            int answer = 0;
            String sEven ="";
            String sOdd = "";
    
            for (int i = 0; i < num_list.length; i++) {
                int k = Integer.parseInt(Integer.toString(num_list[i]));
    
                if (k % 2 == 0) //짝수인 경우
                {
                    sEven += Integer.toString(k);
                }
                else    //홀수인 경우
                {
                    sOdd += Integer.toString(k);
                }
    
            }
    
            //최종값
            answer = Integer.parseInt(sEven) + Integer.parseInt(sOdd);
            return answer;
        }
    }
    • num_list에 원소의 갯수만큼 숫자를 이어붙어야 하기 때문에 for문을 사용한다.
    • for문을 사용할 때 Max_Count는 num_list.length함수를 사용하여 원소의 갯수만큼만 반복문을 돌려준다.
    • num_list 인덱스 값을 도출해야하기 때문에 num_list의 인덱스값을 반복문을 통해 0번 인덱스부터 추출한다.
    • 추출한 후에 짝수, 홀수인지 조건문을 처리한다.
    • 처리 후에 숫자를 더하는 것이 아닌 이어붙여야 하기 때문에 Integer.toString() 함수를 사용하여 문자열로 더해준다.
    • for 문이 끝나고 최종 도출할 때는 숫자의 합이 필요하기 때문에 Integer.parseInt() 함수를 사용하여 return 한다.

     

    반응형

    댓글