항상 풀던 함수만들기 이다. 이번에는 조건이 추가되었다.
문제보기
더보기
문제
수를 입력받아 홀수인지 여부를 리턴해야 합니다.
입력
인자 1 : num
- number 타입의 정수
출력
- boolean 타입을 리턴해야 합니다.
주의 사항
- 반복문(while)문을 사용해야 합니다.
- for문 사용은 금지됩니다.
- 나눗셈(/), 나머지(%) 연산자 사용은 금지됩니다.
- 0은 짝수로 간주합니다.
한 40분을 고민 끝에 다음과 같은 해답을 내었다.
function isOdd(num) {
let n = 0;
if( num > 0){
while ( n <= num ){
n = n + 2;
}
if ( n === num + 2){
return false
}
else if ( n === num + 1){
return true
}
}
else if ( num === 0 ){
return false
}
else {
while ( n >= num ){
n = n - 2;
}
if ( n === num - 2){
return false
}
else if ( n === num - 1){
return true
}
}
}
막상 쓰고보니 원하는 출력은 나왔지만, 코드가 너무 난해하고 복잡하다.
아래는 모범답안이다.
function isOdd(num) {
if (num < 0) {
num = -num;
}
while (num >= 0) {
if (num === 0) {
return false;
} else if (num === 1) {
return true;
}
num = num - 2;
}
}
내 코드와 차별점은 다음과 같다.
- num의 음수처리를 위해 절댓값 개념을 사용한 것.
- num에 마이너스(-)를 하여 숫자를 작게 생각한 것.
- while 안에 조건문(if)를 넣은 것.
훨씬 가독성 좋고 깔끔하다. 나도 이 풀이를 반복하여 멋진 코드를 짤 수 있는 사람이 되어보자!
'Programming Language > JavaScript' 카테고리의 다른 글
[JS]Array관련 문법 (0) | 2022.04.19 |
---|---|
[JS]OOP: Object Oriented Programming, 소프트웨어의 목적 (0) | 2022.04.12 |
[JavaScript]덧셈함수 구현하기 (0) | 2022.02.21 |
[JavaScript]템플릿 문자열(Template string) (0) | 2022.02.16 |
[JavaScript]반복문 (0) | 2022.02.15 |