본문 바로가기

카테고리 없음

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

<문제>

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

 

 

 

 

[문제 해석]

 

모든 원소의 합 또는 모든 원소의 곱을 return 해야하니까 원소의 합과 곱을 담을 변수를 각각 초기화해서 준비해줘야겠다. 그리고 if 문을 사용해서 리스트의 길이를 비교하면 될 것 같다.

 


원소의 합을 담을 변수 sum을 0 으로 초기화 해준다. 그리고 곱을 담을 변수 multiply는 곱을 구해야 하니까 1로 초기화 해준다.

 

이때 원소의 합과 곱은 Java에서 for - each 문을 사용해서 만들어 주면 편리하다.

for - each 문

for ( 변수명 : 참조변수명) {
          // 내용 
}

 

참조변수명에는 String이나 배열이 들어간다.

반복문을 이용해서 

 

for ( int num : num_list) {

   sum += num;

   multiply *= num;

}

 

처럼 원소의 합과 곱을 구해준다.

 

그리고 num_list.length리스트의 길이를 구한다.

이때 11 이상이면 sum을 , 그렇지 않으면 multiply를 반환한다.

 

 

 

class Solution {
    public int solution(int[] num_list) {
        int sum = 0;
        int multiply = 1;

        for (int num : num_list) {
            sum += num;
            multiply *= num;
        }

        if (num_list.length >= 11) {
            return sum;
        } else {
            return multiply;
        }
    }
}

 

 

이것도 기초 문제이지만 꾸준히 매주 문제를 풀어나가고 있다는 점에서 전보다 성장한 것 같다. 무엇보다 꾸준히 도전하는게 중요하니 열심히 해봐야겠다. 아직 어려운 문제들은 도전하기가 쉽지 않다.

 


 

https://school.programmers.co.kr/learn/courses/30/lessons/181879?language=java

 

 

프로그래머스

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

programmers.co.kr