반응형
[프로그래머스] Java 코딩테스트 연습 - 길이에 따른 연산
문제 출처
https://school.programmers.co.kr/learn/courses/30/lessons/181879
문제
정수가 담긴 리스트 num_list 가 주어질 때, 리스트의 길이가 11이상이면 리스트에 있는 모든 원소의 합을, 10 이하이면 모든 원소의 곱을 return하도록 solution함수를 완성해주세요.
풀이
for 반복문 돌리고 num_list의 길이가 11 이상일 경우 sum에 num_list의 원소들을 자리수마다 더했고, 10 이하일 경우 product에 num_list의 원소들을 자리수마다 곱했다. 그 다음에 num_list의 길이가 11 이상이면 answer에 sum을 할당하고 10 이하면 product를 할당하도록 했다.
소스코드
class Solution {
public int solution(int[] num_list) {
int sum = 0;
int product = 1;
int answer = 0;
for (int i = 0; i < num_list.length; i++) {
if (num_list.length >= 11) {
sum += num_list[i];
} else if (num_list.length <= 10) {
product *= num_list[i];
}
if (num_list.length >= 11) {
answer = sum;
} else if (num_list.length <= 10) {
answer = product;
}
}
return answer;
}
}
if문을 너무 남발한 것 같아서 좀 더 간략하게 만든 코드,,
class Solution {
public int solution(int[] num_list) {
int sum = 0;
int product = 1;
int answer = 0;
for (int i = 0; i < num_list.length; i++) {
if (num_list.length >= 11) {
sum += num_list[i];
answer = sum;
} else if (num_list.length <= 10) {
product *= num_list[i];
answer = product;
}
}
return answer;
}
}
3항 연산자로 더더더 간략하게 만들어봤다.
class Solution {
public int solution(int[] num_list) {
int sum = 0;
int product = 1;
int answer = 0;
for (int i = 0; i < num_list.length; i++) {
answer = (num_list.length >= 11) ? (sum += num_list[i]) : (product *= num_list[i]);
}
return answer;
}
}
반응형
'코딩테스트연습 > [프로그래머스] Java' 카테고리의 다른 글
[프로그래머스] Java 코딩테스트 연습 - 카운트 다운 (2) | 2023.06.22 |
---|---|
[프로그래머스] Java 코딩테스트 연습 - n보다 커질 때까지 더하기 (1) | 2023.06.22 |
[프로그래머스] Java 코딩테스트 연습 - 5명씩 (2) | 2023.06.21 |
[프로그래머스] Java 코딩테스트 연습 - 순서 바꾸기 (2) | 2023.06.20 |
[프로그래머스] Java 코딩테스트 연습 - 홀수 vs 짝수 (2) | 2023.06.20 |