[プログラマー[Javascript]132016年
7378 ワード
問題の説明
2016年1月1日は金曜日です.2016年
.たとえば、
せいげんじょうけん12016年は閏年です. 12016年 I/O例
abresult524"TUE"
に答える
曜日を含む
2016年1月1日は金曜日です.2016年
a
月b
日は何曜日ですか?2つの数a
、b
を入力し、2016年a
月b
日が曜日の関数であることを返し、solution
を完了します.日曜日の名前は日曜日から土曜日までです..たとえば、
SUN,MON,TUE,WED,THU,FRI,SAT
、a=5
の場合は、5月24日が火曜日であるため、文字列b=24
を返します.せいげんじょうけん
"TUE"
月a
日は実在の日です.(13月26日または2月45日などの日付は提供しません)abresult524"TUE"
に答える
function solution(a, b) {
const arr = ['SUN','MON','TUE','WED','THU','FRI','SAT']
let day = new Date(`2016.${a}.${b}`).getDay()
return arr[day]
}
説明:曜日を含む
b
配列、arr
)を生成します.getDay()で週のインデックス値を受け入れ、配列内の要素new Date(2016.${a}.${b}
を指定します.
しかし,アルゴリズムの問題を解決する際に重要な計算がすべてreturn
で行われるわけではないという提案もあり,他の解決策も探った.
他人の解答function getDayName(a,b){
var dayList = ['FRI','SAT','SUN','MON','TUE','WED','THU']; // 요일명 배열 (1월 1일은 금요일)
var monthArr = [31, 29, 31, 30, 31, 30, 31, 31, 30, 31, 30, 31]; // 각 월의 길이 배열
var daySum;
if(a < 2) {
daySum = b - 1; // 1월일 경우 바로 인덱스 번호에 맞게 1만 빼준다.
} else {
daySum = monthArr.slice(0, a - 1).reduce((a, b) => a + b) + b - 1;
} // 1월 이상일 경우 slice로 MonthArr를 잘라 모두 더해 1일부터의 일 수를 구한다.
return dayList[daySum % 7]; // 7로 나누어 요일명을 리턴
}
どちらの方法も知っていればよかったのに.
Reference
この問題について([プログラマー[Javascript]132016年), 我々は、より多くの情報をここで見つけました
https://velog.io/@ricky0813/프로그래머스Javascript-13.-2016년
テキストは自由に共有またはコピーできます。ただし、このドキュメントのURLは参考URLとして残しておいてください。
Collection and Share based on the CC Protocol