728x90
프로그래머스 1단계 : 2016년
📝 문제 설명
2016년 1월 1일은 금요일입니다. 2016년 a월 b일은 무슨 요일일까요? 두 수 a ,b를 입력받아 2016년 a월 b일이 무슨 요일인지 리턴하는 함수, solution을 완성하세요. 요일의 이름은 일요일부터 토요일까지 각각 SUN,MON,TUE,WED,THU,FRI,SAT 입니다. 예를 들어 a=5, b=24라면 5월 24일은 화요일이므로 문자열 "TUE"를 반환하세요.
👉 제한 조건
- 2016년은 윤년입니다.
-2016년 a월 b일은 실제로 있는 날입니다. (13월 26일이나 2월 45일같은
날짜는 주어지지 않습니다)
👉 입출력 예
a | b | result |
5 | 24 | "TUE" |
✌️ 나의 풀이
new Date()를 통해 2016년 a월 b일을 불러옵니다. 달을 0부터 센다고 해서
1을 뺐습니다. 결과가 숫자로 나오기 때문에 toString()을 해서 보면 "Tue
May 24 2016 00:00:00 GMT+0900 (Korean Standard Time)"이렇게 요일부터
나옵니다. slice()로 요일 부분만 자르고 toUpperCase()로 대문자를 만들면
끝~!
function solution(a, b) {
let answer = new Date(2016, a-1, b);
return answer.toString().slice(0, 3).toUpperCase();
}
👍 다른 풀이
배열 2개워 조건문을 사용해서 풀이한 방법입니다.
function getDayName(a,b){
var dayList = ['FRI','SAT','SUN','MON','TUE','WED','THU'];
var monthArr = [31, 29, 31, 30, 31, 30, 31, 31, 30, 31, 30, 31];
var daySum;
if(a < 2) {
daySum = b - 1;
} else {
daySum = monthArr.slice(0, a - 1).reduce((a, b) => a + b) + b - 1;
}
return dayList[daySum % 7];
}
728x90
반응형
'알고리즘' 카테고리의 다른 글
프로그래머스 1단계 : 두 개 뽑아서 더하기 (1) | 2022.12.02 |
---|---|
프로그래머스 1단계 : 최대공약수와 최소공배수 (1) | 2022.12.01 |
프로그래머스 1단계 : 예산 (1) | 2022.11.29 |
프로그래머스 1단계 : 3진법 뒤집기 (2) | 2022.11.27 |
프로그래머스 1단계 : 약수의 개수와 덧셈 (1) | 2022.11.26 |
댓글