반응형
Notice
Recent Posts
Recent Comments
Link
일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
1 | 2 | |||||
3 | 4 | 5 | 6 | 7 | 8 | 9 |
10 | 11 | 12 | 13 | 14 | 15 | 16 |
17 | 18 | 19 | 20 | 21 | 22 | 23 |
24 | 25 | 26 | 27 | 28 | 29 | 30 |
Tags
- 레벨 1
- 프로그래머스
- 그래프
- 프로그래머스 레벨 2
- javascript
- Algorithm
- typescript
- HTTP
- dfs
- 타입스크립트
- 크롤링
- 가천대
- 백준
- 쉬운 문제
- 자바스크립트
- 알고리즘
- socket
- 타입 챌린지
- ip
- type challenge
- Crawling
- 수학
- TCP
- dp
- 문자열
- HTTP 완벽 가이드
- Nestjs
- BFS
- 소켓
- Node.js
Archives
- Today
- Total
kakasoo
[node.js] 2016년 ( 프로그래머스 레벨1 ) 본문
반응형
// 프로그래머스 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];
}
이렇게 풀면 더 간단하다.
객체지향적인 코드다.
객체의 상태 값에 따라서 결론이 도출되는 코드를 객체지향적이라고 한다, 나는 그렇게 생각한다.
물론 이 객체는 내가 만든 객체는 아니지만. :)
반응형
'프로그래밍 > 알고리즘 풀이' 카테고리의 다른 글
[node.js] 같은 수는 싫어 ( 프로그래머스 레벨1 ) (0) | 2021.06.25 |
---|---|
[node.js] 가운데 글자 가져오기 ( 프로그래머스 레벨1 ) (0) | 2021.06.25 |
[node.js] 체육복 ( 프로그래머스 레벨1 ) (0) | 2021.06.25 |
[node.js] 모의고사 ( 프로그래머스 레벨1 ) (0) | 2021.06.25 |
[node.js] k번째 수 ( 프로그래머스 레벨1 ) (0) | 2021.06.25 |