<aside> 💡 기록하는 기준

  1. 오답
  2. 레퍼런스와 비교 시 비효율적일 때
  3. 겨우 풀었을 때
  4. 모르는 개념을 찾아봤을 때
  5. 단원 내용을 적용하지 못했을 때

</aside>

조건문

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

입력
인자 1 : num
number 타입의 정수 (num >= 1)

출력
string 타입을 리턴해야 합니다.
3으로 나누어 떨어지는 경우, 'Fizz'를 리턴해야 합니다.
5으로 나누어 떨어지는 경우, 'Buzz'를 리턴해야 합니다.
3과 5로 모두 나누어 떨어지는 경우, 'FizzBuzz'를 리턴해야 합니다.
3이나 5로 나누어 떨어지지 않는 경우, 'No FizzBuzz'를 리턴해야 합니다.

입출력 예시
let output = fizzBuzz(3);
console.log(output); // --> 'Fizz'

output = fizzBuzz(5);
console.log(output); // --> 'Buzz'

output = fizzBuzz(15);
console.log(output); // --> 'FizzBuzz' 

output = fizzBuzz(7);
console.log(output); // --> 'No FizzBuzz'

풀이
1. 문제 분석 
집합 3의 배수 : Fizz (3의 배수 - 15의 배수) 
집합 5의 배수 : Buzz  (5의 배수 - 15의 배수) 
집합 15의 배수 : FizzBuzz 
이외: No FizzBuzz (3의 배수, 5의 배수 제외)

function fizzBuzz(num) {
  // TODO: 여기에 코드를 작성합니다.
 //가장 까다로운 조건을 먼저 거른다 
if(num % 3===0 && num%5===0){ 
	return "FizzBuzz"
}else if(num %3===0){ 
	return "Fizz"
}else if(num%5===0){ 
	return "Buzz"
}else{
	return "No FizzBuzz"
} 

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

입력
인자 1 : month
number 타입의 정수 (1 <= month && month <= 12)

출력
number 타입을 리턴해야 합니다.
주의 사항
월 예시) 1월은 1, 2월은 2... 12월은 12입니다.
7월과 8월에는 모두 31일이 존재합니다.
2월 29일은 존재하지 않는다고 가정합니다.

입출력 예시
let output = daysInMonth(1);
console.log(output); // --> 31

output = daysInMonth(5);
console.log(output); // --> 31

output = daysInMonth(2);
console.log(output); // --> 28
내 풀이
function daysInMonth(month) {
  // TODO: 여기에 코드를 작성합니다.
  // 1,3,5,7,8,10,12
  //4,6,9,11
  //2 
  if(month === 1 ||month === 3||month === 5||month === 7||month === 8||month === 10||month ===12){
    return 31
  }else if(month === 4 || month === 6 || month === 9 || month === 11){ 
    return 30
  }else if(month === 2){ 
    return 28
  }else return undefined
}
레퍼런스 
function daysInMonth(month) {
  if (month === 2) {
    return 28;
  } else if (month === 4 || month === 6 || month === 9 || month === 11) {
    return 30;
  } else { 
    return 31;
  }
}
//**"나머지" 최대한 활용하기**
  1. followingDay
문제
요일을 입력받아 해당 요일의 다음 요일을 리턴해야 합니다.

입력
인자 1 : day
임의의 입력
가능한 요일: 월요일, 화요일, 수요일, 목요일, 금요일, 토요일, 일요일

출력
string 타입을 리턴해야 합니다.
올바른 요일을 입력받은 경우, 다음 요일을 리턴해야 합니다.

주의 사항
올바른 요일이 아닌 경우에는 올바른 요일이 아닙니다 라는 문구를 리턴해야 합니다.

입출력 예시
let output = followingDay('월요일');
console.log(output); // --> '화요일'

output = followingDay('일요일');
console.log(output); // --> '월요일'

output = followingDay('월');
console.log(output); // --> '올바른 요일이 아닙니다'

output = followingDay(100);
console.log(output); // --> '올바른 요일이 아닙니다'

내 풀이 : 배열로 풀어봄

function followingDay(day) {
  // TODO: 여기에 코드를 작성합니다.
  let arr = ["월요일","화요일", "수요일", "목요일", "금요일", "토요일", "일요일"]
  if(arr.includes(day)){ //el in array (X) 
    let index = arr.indexOf(day)
    if(index===arr.length-1){
      return "월요일"
    }else{
    index = index+1; 
    return arr[index];
    }
  }else{ 
    return "올바른 요일이 아닙니다"
  }
}

레퍼런스 코드 :


이해의 척도 : reference 없이 다 풀 수 있는지