728x90
안녕하세요 미어캣입니다.
오늘은 프로그래머스 기초문제 홀짝에 따라 다른 값 반환하기 문제를 풀어보도록 하겠습니다.
문제설명 :
양의 정수 n이 매개변수로 주어질 때, n이 홀수라면 n 이하의 홀수인 모든 양의 정수 합을 return,
n이 짝수라면 n 이하의 짝수인 모든 양의 정수의 제곱의 합을 return 하는 soulution 함수를 작성하시오.
제한사항 :
1 <= n <= 100
문제 :
function solution(n) {
var answer = 0;
return answer;
}
복잡해 보이는 문제라도 프로그래머스 기초문제를 풀어보면 점진적으로 고도화 시키고있다는 느낌이 듭니다.
앞서 풀어본 문제들을 잘 활용하면 의외로 간단하게 해결 할 수 있습니다.
정답 :
더보기
function solution(n) {
let answer= 0;
if(n>= 1 && n <= 100) { //제한사항
if(n%2 === 1) { // 홀수의 경우
for(let i = 1; i<=n; i +=2) {
answer += i;
}
} else { // 짝수의 경우
for(let i = 2; i<=n; i +=2) {
answer +=(i*i);
}
}
return answer;
}
}
처음에는 홀수의 경우, 짝수의 경우에 따라 각각 for문을 사용해서 처리하도록 하였는데
더 간단하게 줄 일 수 있을 것 같아서
function solution(n) {
let answer= 0;
if(n>= 1 && n <= 100) { //제한사항
for(let i = 1; i <= n; i += 2) {
if(n % 2 === 1) { // 홀수의 경우
answer += i;
} else { // 짝수의 경우
answer += (i + 1) * (i + 1);
}
}
return answer;
}
}
for문 사용을 줄이고 홀/짝의 경우로 분기처리하여서 해결하였습니다.
이 문제에 대해 다른 풀이를 봤는데, 수학적으로 접근하신 분들도 많았고 다른 내장함수들을 사용함으로써
오히려 더 복잡한 느낌이 들어서 참고만 하였습니다.
각자 필요에 의한 참고만 하면 될 것 같습니다.
감사합니다. 파이팅..!
반응형
'Web, View > 코딩테스트 연습' 카테고리의 다른 글
[JavaScript] 원소들의 곱과 합 - 181929 (1) | 2023.12.07 |
---|---|
[JavaScript] flag에 따라 다른 값 반환하기 - 181933 (2) | 2023.12.06 |
[JavaScript] 공배수 - 181936 (4) | 2023.12.05 |
[JavaScript] n의 배수 - 181937 (0) | 2023.12.02 |
[JavaScript] 두 수의 연산값 비교하기 - 181938 (0) | 2023.12.01 |