코딩테스트/프로그래머스_코딩 기초 트레이닝
[프로그래머스] 원소들의 곱과 합
아리빠
2023. 5. 30. 14:30
정수가 담긴 리스트 num_list가 주어질 때, 모든 원소들의 곱이 모든 원소들의 합의 제곱보다 작으면 1을 크면 0을 return하도록 solution 함수를 완성해주세요
<생각과정>
num_list의 곱, num_list의 합의 제곱 구해주기 -> 배열 선언하고 할당해주는 방법 찾기
class Solution {
public int solution(int[] num_list) {
int answer = 0;
for(int i=0; i<=num_list.length; i++){
int a *= [i];
int b +=[i];
int c= b*b;
if(a < c){
answer=1;
}else{
answer=0;
}
}
return answer;
}
}

역시나 오류
변수 선언 먼저 해주고, num_list[i] 써주기
class Solution {
public int solution(int[] num_list) {
int answer = 0;
int product =1;
int sum=0;
for(int i=0; i<num_list.length; i++){
product *= num_list[i];
sum += num_list[i];
int c= sum*sum;
if(product < c){
answer=1;
}else{
answer=0;
}
}
return answer;
}
}

product는 곱셈값이기에 0으로 해주면 0나와서 1로 설정해주기~!
++아까 안됐던코드 발전시키기
class Solution {
public int solution(int[] num_list) {
int answer = 0;
int a =1;
int b=0;
for(int i=0; i<num_list.length; i++){
a *= num_list[i];
b += num_list[i];
int c= a*a;
if(a < c){
answer=1;
}else{
answer=0;
}
}
return answer;
}
}

a=830
c=529
a>c인데 왜 a<c 결과인 1이 나왔을까
당연하지... c= a*a라 해놨네...
class Solution {
public int solution(int[] num_list) {
int answer = 0;
int a =1;
int b=0;
for(int i=0; i<num_list.length; i++){
a *= num_list[i];
b += num_list[i];
int c= b*b;
if(a < c){
answer=1;
}else{
answer=0;
}
}
return answer;
}
}

결국 변수의 문제 였다