본문 바로가기

코딩테스트

길이에 따른 연산 JAVA 코딩테스트 프로그래머스

길에 따른 연산

 

출처: 프로그래머스 코딩 테스트 연습, https://school.programmers.co.kr/learn/challenges

 

코딩테스트 연습 | 프로그래머스 스쿨

개발자 취업의 필수 관문 코딩테스트를 철저하게 연습하고 대비할 수 있는 문제를 총망라! 프로그래머스에서 선발한 문제로 유형을 파악하고 실력을 업그레이드해 보세요!

school.programmers.co.kr


문제설명 : 정수가 담긴 리스트 num_list가 주어질 때, 리스트의 길이가 11 이상이면 리스트에 있는 모든 원소의 합을 10 이하이면 모든 원소의 곱을 return하도록 solution 함수를 완성해주세요.

내가 작성한 코드 : 모든 원소를 곱해야 할 때, answer의 초기값이 0이면 아무리 곱해도 0이 나오기 때문에 1로 변경이 필요했다.

class Solution {
    public int solution(int[] num_list) {
        int answer = 0;
        int size = num_list.length;
        for(int i=0;i<num_list.length;i++){
            if(size >= 11 ){
                answer += num_list[i];
        }else{
                if(i==0) answer = 1;
                answer *= num_list[i];
            }
        }
        return answer;
    }
}

 


다른 사람의 풀이 : 내가 고민했던 부분을 첫 줄에 삼항연산자로 처리한 부분이 인상 깊었음~!

class Solution {
    public int solution(int[] num_list) {
        int answer = (num_list.length < 11 ? 1 : 0);

        for(int i=0; i<num_list.length; i++){

            if(num_list.length < 11) {
                answer *= num_list[i];
            }else{
                answer += num_list[i];
            }

        }

        return answer;
    }
}

멋지다~! 👍

 

728x90
300x250