본문 바로가기
coding test/Java

프로그래머스 ) lv.0 ) Java ) 이어 붙인 수

by heidish 2023. 6. 22.
반응형

 

 

 

 

 

 

 

SOL )

class Solution {
    public int solution(int[] num_list) {
        String odd = ""; // 홀수
        String even = ""; // 짝수
        
        for (int n : num_list) {
            if (n % 2 == 0) {
                even += Integer.toString(n);
            } else {
                odd += Integer.toString(n);
            }
        }
        
        return Integer.parseInt(odd) + Integer.parseInt(even);
    }
}

오늘 람다식과 Stream API에 대해서 열심히 공부했던 나는,,,

문제도 제대로 안읽고는 스트림을 사용해보겠다며 열심히 풀었다고 한다,,ㅎ

 

뒤늦게 왜 안되지..? 하면서 문제 다시읽어보고 그냥 for문과 if-else 사용해서 풀기,,

 

 

 

 

 

OTHER SOL )

class Solution {
    public int solution(int[] num_list) {
        String jjaksu = "";
        String holsu = "";

        for(int num : num_list) {
            if(num % 2 == 0) {
                jjaksu += num + "";
            } else {
                holsu += num + "";
            }
        }

        return Integer.parseInt(jjaksu) + Integer.parseInt(holsu);
    }
}

짝수 홀수 영어로 헷갈려서 검색하고 변수명 설정해주고, 또 헷갈릴게 뻔해서 주석도 남겨놨다.

근데 이런 신박한 방법이....!ㅋㅋㅋㅋㅋㅋㅋ

 

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

또 if-else 문이 길어지는게 싫어서 한줄로 쓰고싶었는데, 이렇게 사용하는 방법도 있었다.

특히 num_list 에서 하나씩 빼고 odd/even 에 더해줄때 "" 를 같이 더해주면 Integer → String 변환이 필요없다는걸

또! 까먹었다!

언제쯤 자연스럽게 활용할수 있을까..!

 

 

 

 

반응형

댓글