프로그래밍/알고리즘 풀이
[node.js] 2016년 ( 프로그래머스 레벨1 )
카카수(kakasoo)
2021. 6. 25. 17:05
반응형
// 프로그래머스 level1 2016년 문제를 풀었습니다.
function getDays(month) {
switch (month) {
case 1:
case 3:
case 5:
case 7:
case 8:
case 10:
case 12:
return 31;
case 2:
return 29;
default:
return 30;
}
}
function whatDay(answer) {
if (answer === 0) return 'FRI';
if (answer === 1) return 'SAT';
if (answer === 2) return 'SUN';
if (answer === 3) return 'MON';
if (answer === 4) return 'TUE';
if (answer === 5) return 'WED';
if (answer === 6) return 'THU';
}
function solution(a, b) {
let answer = b - 1;
for (let i = 1; i < a; i++) {
answer += getDays(i);
}
answer = whatDay(answer %= 7);
return answer;
}
예전에는 이렇게 풀었다.
하지만 이 때는, 객체지향적인 게 뭔지도 몰랐고, 대충 말하자면, 그냥 C++ 같은 방식으로만 풀었다.
나름 저것도 창의적인 방법이라고 생각하면서 풀었던 거 같다.
하지만 내장, 프로토타입 함수가 강력하다는 걸 안 지금, 굳이 저렇게 풀 필요는 없다.
const solution = (a, b) => {
const whatDay = new Date(2016, a - 1, b).getDay();
return ["SUN", "MON", "TUE", "WED", "THU", "FRI", "SAT"][whatDay];
}
이렇게 풀면 더 간단하다.
객체지향적인 코드다.
객체의 상태 값에 따라서 결론이 도출되는 코드를 객체지향적이라고 한다, 나는 그렇게 생각한다.
물론 이 객체는 내가 만든 객체는 아니지만. :)
반응형