
* 문제 풀이
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];
}
if(a < b*b){
answer = 1;
} else{
answer = 0;
}
return answer;
}
}
처음에 아래처럼 코드를 작성했었다.
class Solution {
public int solution(int[] num_list) {
int answer = 0;
int a = 0;
int b = 0;
for(int i = 0; i < num_list.length; i++){
a *= num_list[i];
b += num_list[i];
if(a < b*b){
answer = 1;
} else if(a > b*b){
answer = 0;
}
}
return answer;
}
}
근데 test 2 에서 오답 처리 되어서 뭘까 했는데 a 변수 선언이 잘못된 거였다.
곱셈을 하는데 초기값을 0으로 해서리... 초기값을 0으로 설정해두면 무슨 수를 곱해도 0이기 때문에 영원히... a가 커질 일은 없다.
그래서 초기값을 1로 설정.
그리고 if문이 for문 안에 있을 필요가 없다.
* 프로그래머스 다른 풀이
class Solution {
public int solution(int[] num_list) {
int sum = 0;
int multiply = 1;
for(int num: num_list) {
sum+=num;
multiply*=num;
}
return multiply<(sum*sum)?1:0;
}
}
'코테 > 프로그래머스 JAVA Lv.0' 카테고리의 다른 글
| [프로그래머스/java] 문자열 겹쳐쓰기 (0) | 2025.05.18 |
|---|---|
| [프로그래머스/java] 문자열의 뒤의 n글자 (0) | 2025.05.18 |
| [프로그래머스/java/Lv.0] 문자열 돌리기 (0) | 2025.04.24 |
| [프로그래머스/java/Lv.0] 특수문자 출력하기 (0) | 2025.04.24 |
| [프로그래머스/java/Lv.0] 대소문자 바꿔서 출력하기 (0) | 2025.04.23 |