👽내 코드
class Solution {
public int solution(int[] arr1, int[] arr2) {
if(arr1.length != arr2.length){
if(arr1.length >arr2.length) return 1;
else return -1;
}else if(arr1.length == arr2.length){
int num1 = 0;
int num2 = 0;
for(int i=0; i<arr1.length; i++){
num1 += arr1[i];
}
for(int j=0; j<arr2.length; j++){
num2 += arr2[j];
}
if(num1>num2) return 1;
else if (num1<num2) return -1;
else return 0;
}
return 0;
}
}
❓생각해 보아야 할 부분
1) 모든 경우의 수에 return값을 썼어도 마지막에 써야하긴 함.
🦜 다른 코드
class Solution {
public int solution(int[] arr1, int[] arr2) {
if (arr1.length < arr2.length) return -1;
else if (arr1.length > arr2.length) return 1;
int arr1Sum = 0, arr2Sum = 0;
for (int i = 0;i < arr1.length;i++) {
arr1Sum += arr1[i];
arr2Sum += arr2[i];
}
return arr1Sum == arr2Sum ? 0 : (arr1Sum > arr2Sum ? 1 : -1);
}
}
내가 어떤 부분을 줄이지 못했는지 파악할 수 있었다.
먼저 굳이 if문으로 두 길이가 같지 않다는 조건을 설정하지 않고 바로 배열의 길이를 비교해 답을 return할 수 있었음
else if는 배열의 길이가 같은 경우이기 때문에 (처음에 반대로 생각해서 식을 반대로 썼는데 그 후 수정 제대로 못함)
for문을 괜히 두 번이나 돌렸다
마지막 삼항연산식을 활용하면 좋았을텐데....... 기억!
[문제출처: https://school.programmers.co.kr/learn/challenges?order=recent&levels=0]
'Coding Test > 프로그래머스 기초' 카테고리의 다른 글
[Day 20] Java - 배열의 길이에 따라 다른 연산하기 (0) | 2024.02.22 |
---|---|
[Day 20] Java - 문자열 묶기 (0) | 2024.02.22 |
[Day 20] Java - 배열의 길이를 2의 거듭제곱으로 만들기 (0) | 2024.02.22 |
[Day 19] Java - 무작위로 K개의 수 뽑기 (0) | 2024.02.22 |
[Day 19] Java - 배열 만들기 6 (0) | 2024.02.21 |