
내가 생각했을때 문제에서 원하는부분
정수가 담긴 리스트 num_list가 주어질 때, 리스트의 길이가 11 이상이면 리스트에 있는 모든 원소의 합을 10 이하이면 모든 원소의 곱을 return하도록 solution 함수를 완성해주세요.
내가 이 문제를 보고 생각해본 부분
solution 메서드는 int[] num_list를 입력받는다.
배열의 길이를 length 변수에 저장한다.
길이가 11 이상이면 배열 원소들의 합을 구한다.
sum을 0으로 초기화한 후, 향상된 for문을 통해 배열 전체를 순회하면서 모든 원소를 더한다.
그 결과를 answer에 할당한다.
길이가 10 이하이면 배열 원소들의 곱을 구한다.
product를 1로 초기화하고 배열 전체를 순회하면서 모든 원소를 곱한다.
이 값을 answer에 할당한다.
answer 값을 반환한다.
main 메서드는 solution 메서드를 테스트하기 위한 진입점이다.
예제로 두 개의 배열 example1과 example2를 만든다.
solution 호출 결과를 각각 출력하여, 길이 11 이상일 때 합, 10 이하일 때 곱이 제대로 계산되는지를 확인한다.
코드로 구현
class Solution {
public int solution(int[] num_list) {
int answer = 0;
int length = num_list.length;
if (length >= 11) {
int sum = 0;
for (int num : num_list) {
sum += num;
}
answer = sum;
} else {
int product = 1;
for (int num : num_list) {
product *= num;
}
answer = product;
}
return answer;
}
}
프로그래머스 코드
package programmers;
// 프로그래머스 길이에 따른 연산
public class Main66 {
public static int solution(int[] num_list) {
int answer = 0;
int length = num_list.length;
if (length >= 11) {
int sum = 0;
for (int num : num_list) {
sum += num;
}
answer = sum;
} else {
int product = 1;
for (int num : num_list) {
product *= num;
}
answer = product;
}
return answer;
}
public static void main(String[] args) {
// 테스트용 입력 예시
int[] example1 = {3, 4, 5, 2, 5, 4, 6, 7, 3, 7, 2, 2, 1};
int[] example2 = {2, 3, 4, 5};
System.out.println(solution(example1)); // 51
System.out.println(solution(example2)); // 120
}
}
위에 있는 코드를 변경한 코드
코드와 설명이 부족할수 있습니다. 코드를 보시고 문제가 있거나 코드 개선이 필요한 부분이 있다면 댓글로 말해주시면 감사한 마음으로 참고해 코드를 수정 하겠습니다.