문제: https://school.programmers.co.kr/learn/courses/30/lessons/120824
✅ 내 풀이
class Solution {
public int[] solution(int[] num_list) {
int even = 0, odd = 0;
int[] answer = new int[2];
for (int i=0; i< num_list.length; i++){
if(num_list[i] % 2 == 0) {
even++;
}
else odd++;
answer[0] = even;
answer[1] = odd;
}
return answer;
}
}
✅ 1. 다른풀이 (코드 간결화)
// 1. 다른풀이 (코드 간결화)
class Solution {
public int[] solution(int[] num_list) {
int[] answer = new int[2];
for(int i = 0 ; i < num_list.length ; i++){
if(num_list[i]%2==0){
answer[0]++;
}else{
answer[1]++;
}
}
return answer;
}
}
📄 내 코드보다 깔끔한 이유 ❓
: 출력값이 [짝수, 홀수]로 나오기 때문에 굳이 변수를 선언하는게 아니라 if문에 맞춰서 answer[0], [1]값을 바로 카운팅하면 된다.
✅ 2. 다른풀이
class Solution {
public int[] solution(int[] num_list) {
int[] answer = new int[2];
for(int i = 0; i < num_list.length; i++)
answer[num_list[i] % 2]++;
return answer;
}
}
📄 풀이)
num_list = {1, 2, 3, 4, 5}; 일때
num_list[0] % 2 = 1;
num_list[1] % 2 = 0;
num_list[2] % 2 = 1;
num_list[3] % 2 = 0;
num_list[4] % 2 = 1;
answer[1]++;
answer[0]++;
answer[1]++;
answer[0]++;
answer[1]++;
// 결과값 형태: [짝수의 개수, 홀수의 개수]
// 짝수 = 나머지가 0임 = answer의 0번째 인덱스에 카운팅됨
// 즉, answer[num_list[i] % 2]++; 코드로 짝수 or 홀수 판별 후 카운팅까지 가능함