loading
본문 바로가기
Coding/Programers

[ Programmers ] 길이에 따른 연산 ( java ) 74 / 124

by NeuLyeo 2024. 1. 7.

[ Programmers ] 길이에 따른 연산 ( java ) 74 / 124

 

프로그래머스

코드 중심의 개발자 채용. 스택 기반의 포지션 매칭. 프로그래머스의 개발자 맞춤형 프로필을 등록하고, 나와 기술 궁합이 잘 맞는 기업들을 매칭 받으세요.

programmers.co.kr

 

 

 

 

📚 Table of Contents

     

     

     

     

    문제 설명

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

     

     

    제한사항

    • 2 ≤ num_list의 길이 ≤ 20
    • 1 ≤ num_list의 원소 ≤ 9
    • num_list의 원소를 모두 곱했을 때 2,147,483,647를 넘는 입력은 주어지지 않습니다.

     

     

    입출력 예

    num_list result
    [3, 4, 5, 2, 5, 4, 6, 7, 3, 7, 2, 2, 1] 51
    [2, 3, 4, 5] 120

     

     

    입출력 예 설명

    입출력 예 #1

    • 리스트의 길이가 13이므로 모든 원소의 합인 51을 return합니다.

    입출력 예 #2

    • 리스트의 길이가 4이므로 모든 원소의 곱인 120을 return합니다.

     

     

     

     

    문제 풀이

    코드 설명

    • 코드의 목적:
      • 주어진 숫자 배열의 길이에 따라 다른 연산을 수행
      • 배열의 길이가 10보다 크면, 배열의 모든 원소를 합산
      • 배열의 길이가 10 이하면, 배열의 모든 원소를 곱함

     

    • 코드의 주요 구조:
      • Solution 클래스와 solution 메소드로 구성
      • solution 메소드에서 숫자 배열의 길이를 체크하고 해당하는 연산을 수행

     

    • 코드의 주요 알고리즘:
      • 스트림과 람다를 활용한 함수형 프로그래밍 스타일 사용
      • 삼항 연산자를 사용하여 배열의 길이에 따라 다른 연산을 선택

     

    • 코드의 핵심:
      • 주어진 숫자 배열의 길이에 따라 다른 연산을 수행하는 것
      • 스트림과 람다, 삼항 연산자 등을 효율적으로 사용

     

     

     

    풀이

    import java.util.Arrays;
    
    // Solution 클래스 정의
    class Solution {
    
        // solution 메소드 정의, 정수 배열을 매개변수로 받음
        public int solution(int[] num_list) {
    
            // 배열의 길이가 10보다 크면 배열의 모든 원소를 합산하고, 10 이하면 배열의 모든 원소를 곱함
            return num_list.length > 10 ? Arrays.stream(num_list).sum()
                : Arrays.stream(num_list).reduce(1, (x, y) -> x * y);
        }
    }