Dev_TIMI

이어 붙인 수

by its_TIMI

문제 설명

정수가 담긴 리스트 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입니다.

Solution.java - 1

class Solution {
    public int solution(int[] num_list) {
        StringBuilder odd = new StringBuilder();
        StringBuilder even = new StringBuilder();
        
        for(int i : num_list){
            if ( i % 2 == 1 ){
                odd.append( String.valueOf(i));
            } else {
                even.append( String.valueOf(i));
            }
        }
        int answer = Integer.parseInt(odd.toString()) + Integer.parseInt(even.toString());
        return answer;
    }
}

Solution.java - 2

 class Solution {
    public int solution(int[] num_list) {
        String odd = "";
				String even = "";
		
				for ( int i : num_list ) {
		            if( i % 2 == 1 ){
		                odd += String.valueOf(i);
		            } else {
		                even += String.valueOf(i);
		            }
		        }
		        return Integer.parseInt(odd) + Integer.parseInt(even);
    }
}

Solution.java - 3

class Solution {
    public int solution(int[] num_list) {
        StringBuilder odd = new StringBuilder();
        StringBuilder even = new StringBuilder();
        for(int i : num_list){
            if( i % 2 == 0 ) {
                even.append(String.valueOf(i)); //StringBuilder는 굳이 String.valueOf 하지 않고 int 고대로 append 때려도 괜찮음.
            } else {
                odd.append(String.valueOf(i));
            }
        }
        return Integer.parseInt(even.toString())+Integer.parseInt(odd.toString());
    }
}

Solution.java - 4

class Solution {
		public int solution(int[] num_list) {
				StringBuilder odd = new StringBuilder();
				StringBuilder even = new StringBuilder();
			
				for(int i : num_list){
					if(i%2 != 0){
					odd.append(i);
					}else{//else를 사용하지 않으면 오류가 난다. 이유는 even.append가 실행되지 않아서가 아니라, odd일 경우에도 실행되기 때문이다. 따라서 해당 문제에서는 else 꼭 사용하기.
					even.append(i);
					} 
				}
				return Integer.parseInt(odd.toString()) + Integer.parseInt(even.toString());
    }
}
반응형

'[Programmers][코딩 기초 트레이닝🌱]-Java' 카테고리의 다른 글

수 조작하기  (0) 2023.07.04
마지막 두 원소  (0) 2023.07.04
코드 처리하기  (0) 2023.07.04
원소들의 곱과 합  (0) 2023.07.03
등차수열의 특정한 항만 더하기  (0) 2023.07.01

블로그의 정보

Dev_TIMI

its_TIMI

활동하기