길에 따른 연산
출처: 프로그래머스 코딩 테스트 연습, https://school.programmers.co.kr/learn/challenges
문제설명 : 정수가 담긴 리스트 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