양의 정수 n이 매개변수로 주어질 때, n이 홀수라면 n 이하의 홀수인 모든 양의 정수의 합을 return 하고 n이 짝수라면 n 이하의 짝수인 모든 양의 정수의 제곱의 합을 return 하는 solution 함수를 작성해 주세요.
홀수와 짝수의 경우를 나눠서 List에 담은 다음 그 리스트를 반환하면 되는거 아닌가?
import java.util.*;
class Solution {
public int solution(int n) {
int answer = 0;
List<Integer> numEven = new ArrayList<>();
List<Integer> numOdd = new ArrayList<>();
for(int i = 1 ; i <= n ; i++){
if(n % 2 == 0){
numEven.add(i*i);
} else {
numOdd.add(i);
}
}
if(n % 2 == 0){
answer = Integer.parseInt(numEven.toString());
} else {
answer = Integer.parseInt(numOdd.toString());;
}
return answer;
}
}
NumberFormatException
이 나왔다. 이게 뭐지
List형을 String형으로 바꾼 다음에 Int로 바꾸려고 한건데 뭔가 내가 잘못한건가?
numEven.toString()
이 부분이 지금 List형에서 String으로 변환이 안된거 같은데. 문자형 배열로 지금 받아지고 있다... "[1, 4, 9, 16, 25, 36, 49, 64, 81, 100]" -> 심지어 홀짝에 따른 분류가 안되고있다!
List에 추가할때 그냥 다 집어 넣고 있었다..n의 짝홀수 구분은 다 해놓고 for문을 돌릴때는 i를 1부터 n까지 다 집어넣음..ㅎ
import java.util.*;
class Solution {
public int solution(int n) {
int answer = 0;
List<Integer> nums = new ArrayList<>();
if(n % 2 ==0){ //짝수니까 2부터 시작
for(int i = 2 ; i <= n ; i += 2){
nums.add(i*i);
}
} else { //홀수니까 1부터 시작
for(int i = 1 ; i <= n ; i += 2){
nums.add(i);
}
}
for(int num : nums){
answer += num;
}
return answer;
}
}