오늘의목표
오늘 어려운점
``
홀짝에 따라 다른 값 반환하기
문제 설명
양의 정수 n이 매개변수로 주어질 때, n이 홀수라면 n 이하의 홀수인 모든 양의 정수의 합을 return 하고 n이 짝수라면 n 이하의 짝수인 모든 양의 정수의 제곱의 합을 return 하는 solution 함수를 작성해 주세요.
``
알고리즘 문제를 푸는데 조금 복잡했다.
처음에 if문으로 해결할려고 했는데 좀더 생각해보니 if문 뿐만아니라 if문에 통해서 나온값을
for문으로 돌려서 홀수면 홀수값만 뽑아내서 더하고 짝수는 짝수값만 뽑아서 곱해야 겠다는 생각이 들었다.
``
function solution(n) {
if(n %2 !== 0 ){
let oddNumber = 0;
for(let i = 1; i<= n; i = i+2){
oddNumber = oddNumber + i
}
return oddNumber
}else{
let evenNumber = 0
for(let i = 2 ; i<= n; i = i+2){
evenNumber += i ** 2
}
return evenNumber
}
``
이번 문제를 풀면서 완전 수학에 중요함을 느낀거 같다. 나는 좀 복잡하게 if문으로 홀수짝수 나누고 for문으로 홀수 값은 더하고 짝수값은 제곱을 더하는걸 사용했는데 이렇게 길게 생각을 해도
좋은 해결 답안이 안나오고 코드가 길어지니깐 내가 햇갈려서 문제를 푸는데 오랜시간이 걸렸는데.
문제를 풀고 다른사람의 풀이를 보니 등차수열의 합공식을사용하신분은 코드길이가 4줄로 끝이난걸 보고 수학공부의 중요성도 느꼇다.
느낀점