알고리즘/과제

매개변수 판단 알고리즘

도어누들 2023. 5. 1. 09:18

🔎 매개변수의 존재여부에 따른 다른 결과값 출력하기

📙 문제

 meetAt 함수를 만들어주세요.
     인자를 세개 받습니다.

 첫번째 인자는 년도에 해당하는 숫자입니다.
 두번째 인자는 월에 해당하는 숫자입니다.

 세번째 인자는 일에 해당하는 숫자입니다.

 년도 인자만 받았을 경우 → "1234년" 과 같은 형식의 문자열을 리턴 해주세요.

 년도,월 인자를 받았을 경우 → 년도와 월을 조합해서 "1234년 5월" 과 같은 형식의 문자열을

 리턴 해주세요.

 년도,월,일 인자를 전부 받았을 경우 → 년도,월,일을 조합해서 "1234/5/6" 과 같은 형식의 문자열을

 리턴 해주세요.



결과 예시
meetAt(2022); // 결과 --> 2022년

meetAt(2032, 3); // 결과 --> "2032년 3월"
meetAt(1987, 10, 28); // 결과 --> "1987/10/28"

💻 사용언어

JS


✔ 개발계획

1. 함수를 하나 만들어 년도, 월, 일 세개의 매개변수를 받는다.

2. 년도만 있을경우 => 2023년 출력

    년, 월만 있을경우 => 2023년 5월

    년, 월, 일 만 있을경우 => 2023/5/1


✍ 해결코드

function meetAt(year, month, date) {
  if(date){
    return console.log(year+"/"+month+"/"+date);
  } else if(month){
    return console.log(year + "년 " + month + "월");
  } else {
    return console.log(year + "년");
  }
}

meetAt(2022);
meetAt(2032, 3);
meetAt(1987, 10, 28);

👍 다른 풀이법

function meetAt(year, month, date) {
  let todayYear = year;
  let todayMonth = month;
  let todayDate = date;

  if (todayDate) {
    return `${todayYear}/${todayMonth}/${todayDate}`;
  }
  if (todayMonth) {
    return `${todayYear}년 ${todayMonth}월`;
  }
  if (todayYear) {
    return `${todayYear}년`;
  }

}

console.log(meetAt(2022,1,7))

조건 순서도 중요! undefined => false 를 리턴!

 

🤦‍♂️ 느낀점

간단한 로직도 내가 놓치고 있는 부분이 많다.

빨리 푸는게 문제가 아니고 오래 풀어도 되니까 왜 안되는지에 관하여 공부를 많이 해야한다.

밑에 참고사이트를 보면서 여러가지의 코드 형태를 비교하면서 공부하자

아자아자 홧팅!!

 

참고사이트

https://velog.io/@remon/%EC%97%AC%EB%9F%AC%EA%B0%9C%EC%9D%98-%EC%9D%B8%EC%9E%90%EB%A5%BC-%EB%B0%9B%EB%8A%94-%ED%95%A8%EC%88%98-%EB%A7%A4%EA%B0%9C%EB%B3%80%EC%88%98-%EC%A1%B4%EC%9E%AC-%EC%97%AC%EB%B6%80-%ED%8C%8C%EC%95%85

 

여러개의 인자를 받는 함수 - 매개변수 존재 여부 파악

📍 Function : 매개변수 존재 여부 파악하기

velog.io