2021.06.05 Coplit 조건문(1)

양윤호·2021년 6월 8일
0
post-thumbnail

1._isOldEnoughToDrink

문제: 나이를 입력받아 술을 마실 수 있는지 (18세 이상) 여부를 리턴해야 합니다.

//본인 작성 코드
function isOldEnoughToDrink(age) {
  if (age >= 18) {
    return 'Enough' //조건에 boolean 타입의 출력이라면 true, false가 맞음
  } else {
    return 'Not Enough'
  }
}
//Reference 코드
function isOldEnoughToDrink(age) {
  if (age >= 18) {
    return 'true'
  } else {
    return 'false'
  }
}

2._isGreaterThan30

문제: 온도를 입력받아 해당 온도가 30이 넘는지 확인 후 알맞은 값을 리턴해야 합니다.

주의:

  1. string 타입을 리턴해야 합니다.
  2. 온도가 30 미만일 때 : '여름이 매우 덥네요'
  3. 온도가 30 이상일 때 : '에어컨을 켜야겠다!'
//본인 작성 코드
function isGreaterThan30(temp) {
  if ( temp >= 30 ) {
    return '에어컨을 켜야겠다!'
  } else {
    return '여름이 매우 덥네요'
  }
}
//Reference 코드
function isGreaterThan30(temp) {
  if ( temp < 30 ) {
    return '여름이 매우 덥네요'
  } else {
    return '에어컨을 켜야겠다!'
  }
}
//등호의 방향과 순서가 다름 결과적으로 등호 한개 만큼의 차이가 발생

3._equalsTen

문제: 수를 입력받아 10과 같은지 여부를 리턴해야 합니다.

주의:

  1. boolean 타입을 리턴해야 합니다.
//본인 작성 코드
function equalsTen(num) {
  if ( num === 10 ) {
    return true
  } else {
    return false
  }
}
//Reference 코드
function = equalsTen(num) {
  return num === 10;
}
//조건문이라 무턱대고 if 조건문으로 작성했는데 reference 코드를 보니까 한숨이 나올만큼 간단한 문제였음. 참, 거짓의 리턴 값을 내가 반드시 지정해야하는 것이 아님에도 지정해서 너무 긴 코드를 작성했음.

4._isGreaterThan

문제: 두 개의 수를 입력받아 두번째 수가 첫번째 수보다 큰지 여부를 리턴해야 합니다.

주의:

  1. boolean 타입을 리턴해야 합니다.
  2. 같은 수를 입력받은 경우, false를 리턴해야 합니다.
//본인 작성 코드
function isGreaterThan (num1, num2) {
  if (num1 < num2) {
    return true 
  } else {
    return false
  }
}
//Reference 코드
function isGreaterThan (num1, num2) {
  if (num1 < num2) {
    return true 
  }
  return false
}
//if문을 사용할 때 else문을 사용하지 않아도 되는지 몰랐음. 그렇기 때문에 위와 같은 코드를 작성하였음. 조건문에 대한 공부가 조금 더 필요함.

5._isEven

문제: 수를 입력받아 짝수인지 여부를 리턴해야 합니다.

주의:

  1. boolean 타입을 리턴해야 합니다.
  2. 0은 짝수로 간주합니다.
//본인 작성 코드
function isEven(num) {
  if ((num % 2) === 0) {
    return true
  } else {
    return false
  }
}
//Reference 코드
function isEven(num) {
  if (num % 2 === 0) {
    return true;
  }
  return false;
}
//위 4번 문제와 같은 문제가 발생하였고 또한 굳이 넣지 않아도 될 괄호가 들어감.

6._isEvenAndGreaterThanTen

문제: 수를 입력받아 입력된 수가 10보다 크고 짝수인지 여부를 리턴해야 합니다.

주의:

  1. boolean 타입을 리턴해야 합니다.
  2. 10을 입력받은 경우, false를 리턴해야 합니다.
//본인 작성코드
function isEvenAndGreaterthanTen(num) {
  if (num > 10 && (num % 2) === 0) {
    return true
  } else {
    return false
  }
}
//Reference 코드
function isEvenAndGreaterThanTen(num) {
  if (num % 2 === 0 && num > 10) {
    return true;
  }
  return false;
}
//계속 Reference 코드와 비교해보다 보니 어느 부분에서 코드를 줄일 수 있는지 조금은 알게 됨. 반드시 else가 들어갈 필요는 없다는 점과 괄호가 굳이 안들어가도 될 부분이 보임.

7._fizzBuzz

문제: 수를 입력받아 3 그리고 5로 각각 나눈 뒤 나머지 값에 따라 알맞은 메시지를 리턴해야 합니다.

주의:

  1. string 타입으로 리턴해야 합니다.
  2. 3으로 나누어 떨어지는 경우, 'Fizz'를 리턴해야 합니다.
  3. 5로 나누어 떨어지는 경우, 'Buzz'를 리턴해야 합니다.
  4. 3과 5로 모두 나누어 떨어지는 경우, 'FizzBuzz'를 리턴해야 합니다.
  5. 3이나 5로 나누어 떨어지지 않는 경우, 'No FizzBuzz'를 리턴해야 합니다.
//본인 작성 코드
function fizzBuzz(num) {
  if ((num % 3) === 0 && (num % 5) !== 0) {
    return 'Fizz'
  } else if ((num % 3) !== 0 && (num % 5) === 0) {
    return 'Buzz'
  } else if ((num % 3) === 0 && (num % 5) === 0) {
    return 'FizzBuzz'
  } else {
    return 'No FizzBuzz'
  }
}
//Reference 코드
function fizzBuzz(num) {
  if (num % 3 === 0 && num % 5 === 0) 
  //여기서는 겹치는 부분부터 정의하고 나서 뒤에 코드를 줄이는 방법을 씀
  //나는 본의는 아니지만 조건을 집어 넣으면서 15를 넣더라도 Fizz만 나오는 코드가 아니게 됨.
  {
    return 'FizzBuzz';
  } else if (num % 3 === 0) {
    return 'Fizz';
  } else if (num % 5 === 0) {
    return 'Buzz';
  } else {
    return 'No FizzBuzz';
  }
}
//하지만 결과적으로 순서를 모르고 주의사항에 주어진 순서대로 작성하여 코드의 길이가 길어짐. 일단 만들었다는 것에 의의를 두기로 함.

8._miniCalculator

문제: 두 개의 수와 기호를 입력받아 알맞게 계산한 값을 리턴해야 합니다.

주의:

  1. number 타입을 리턴해야 합니다.
//본인 작성 코드
function miniCalculator(num1, num2, operator) {
  if (operator === '+') {
    return num1 + num2
  } else if (operator === '-') {
    return num1 - num2
  } else if (operator === '*') {
    return num1 * num2
  } else if (operator === '/') {
    return num1 / num2
  } else {
    return false
  }
}
//Reference 코드
function miniCalculator(num1, num2, operator) {
  if (operator === '+') {
    return num1 + num2;
  } else if (operator === '-') {
    return num1 - num2;
  } else if (operator === '*') {
    return num1 * num2;
  } else if (operator === '/') {
    return num1 / num2;
  }
}
// 전체적으로 비슷하지만 else if를 사용하면 반드시 마지막에 else가 들어가야 한다고 생각했는데 그 것이 아닌 것 같음. 내가 else를 넣은 이유는 operator에 &나 ^같은 것이 들어오면 잘 못 넣었다는 것을 표현하고 싶었는데 문제만 해결하기 위해서는 위와 같이 하는 것이 좋겠다는 생각이 듬.

9._daysInMonth

문제: 특정 달(month)를 입력받아 각 달에 몇 일이 있는지 리턴해야 합니다.

주의:

  1. number 타입을 리턴해야 합니다.
  2. 1월은 1, 2월은 2, ..., 12월은 12입니다.
  3. 7월과 8월에는 모두 31일이 존재합니다.
  4. 2월 29일은 존재하지 않습니다.
//본인 작성 코드
function daysInMonth {
  if (month === 2) {
    return 28
  } else if (month === 1 || month === 3 || month === 5 || month === 7 || month === 8 || month === 10 || month === 12) { 
    return 31 
  } else {
    return 30
  }
}    
//Reference 코드
function daysInMonth(month) {
  if (month === 2) {
    return 28;
  } else if (month === 4 || month === 6 || month === 9 || month === 11) {
    return 30;
  } else {
    return 31;
  }
}
//나는 31일을 먼저 했고 Reference코드는 30일을 먼저 걸러낸 것정도의 차이가 있지만 대체적으로 같음.
profile
안녕하세요! 주니어 개발자가 되기 위해 준비중인 양윤호라고 합니다.

0개의 댓글