반응형
문제 설명
정수가 담긴 리스트 num_list가 있는데, 리스트의 모든 값들을 곱한 값이 모든 값들을 더한 제곱의 수보다 작으면 1을 리턴하고 크면 0을 리턴하면 되는 그런 문제이다!
문제 풀이
더한 값을 저장할 변수 1, 곱한 값을 저장할 변수 1을 만들고 반복문을 이용하여 위의 변수에 알맞게 값을 넣어준다.
이후 Math 클래스의 pow함수를 이용해서 제곱을 해주고 조건문으로 값들을 비교하면 된다.
여기서는 Math.pow()를 잘 알고 사용할 수만 있으면 된다, 복잡해보이지만 실제로 풀어보면 금방 풀 수 있는 문제
문제 해답
package list;
public class Programmers_ElementSumAndMultiply {
public static int solution(int[] num_list) {
// 합을 저장할 변수
int elementSum = 0;
// 곱을 저장할 변수
int elementMultiply = 1;
// 결과를 리턴할 변수
int answer = 0;
for (int i = 0; i < num_list.length; i++) {
elementSum += num_list[i];
elementMultiply *= num_list[i];
}
if (elementMultiply < Math.pow(elementSum, 2)) {
answer = 1;
} else {
answer = 0;
}
return answer;
}
public static void main(String[] args) {
// 파라미터
int result = solution(new int[] {5, 7, 8, 3});
// 솔루션 값 출력
System.out.print(result);
}
}
문제를 풀고나서 다른 사람들의 풀이를 봤는데 한줄만에 끝낸 사람도 있고, 조건문을 길고 복잡하게 나처럼 쓰지 않고 삼항연산자를 이용해서 간단하게 처리한 답안이 꽤 있었다..!
요즘은 삼항연산자, 람다식은 기본으로 사용하는 거 같다.. 안 푼 사이에 생각보다.. 너무 뒤쳐진 거 같다 ㅠ.ㅠ
반응형