[AlgorithmProblem]2016年
質問する
2016年1月1日は金曜日です.2016年a月b日は何曜日ですか?2つの数a,bを入力し,2016年a月b日が曜日である関数を返し,解を完成する.日曜日の名称は日曜日から土曜日までSUN、MON、TUE、WED、THU、FRI、SAT
.たとえば、a=5、b=24の場合は、5月24日が火曜日であるため、文字列「TUE」を返します.
せいげんじょうけん
2016年は閏年です.
2016年a月b日は実在の日です(13月26日または2月45日などの日付は提供されません)
コード#コード#
function solution(a, b) {
let weekDay = ["SUN","MON","TUE","WED","THU","FRI","SAT"];
let day = b;
let index = 4;
for (let i = 1; i < a; i++) {
if (i === 2)
day += 29;
else if (i === 4 || i === 6 || i === 9 || i === 11)
day += 30;
else
day += 31;
}
index = (index + day % 7) % 7;
return weekDay[index];
}
테스트 1 〉 통과 (0.07ms, 30.2MB)
테스트 2 〉 통과 (0.05ms, 30.2MB)
테스트 3 〉 통과 (0.06ms, 30.2MB)
테스트 4 〉 통과 (0.07ms, 29.9MB)
테스트 5 〉 통과 (0.05ms, 29.9MB)
테스트 6 〉 통과 (0.05ms, 30.1MB)
테스트 7 〉 통과 (0.07ms, 29.9MB)
테스트 8 〉 통과 (0.07ms, 30.2MB)
테스트 9 〉 통과 (0.06ms, 30.1MB)
테스트 10 〉 통과 (0.06ms, 30MB)
테스트 11 〉 통과 (0.05ms, 30.1MB)
테스트 12 〉 통과 (0.07ms, 30.2MB)
테스트 13 〉 통과 (0.05ms, 30MB)
테스트 14 〉 통과 (0.06ms, 30.2MB)
function solution(a, b) {
let weekDay = ["SUN","MON","TUE","WED","THU","FRI","SAT"];
let date = new Date(`2016-${a}-${b}`);
return weekDay[date.getDay()];
}
테스트 1 〉 통과 (0.14ms, 30.6MB)
테스트 2 〉 통과 (0.13ms, 30.4MB)
테스트 3 〉 통과 (0.13ms, 30.4MB)
테스트 4 〉 통과 (0.14ms, 30.1MB)
테스트 5 〉 통과 (0.15ms, 30.7MB)
테스트 6 〉 통과 (0.15ms, 30.3MB)
테스트 7 〉 통과 (0.13ms, 30.6MB)
테스트 8 〉 통과 (0.15ms, 30.4MB)
테스트 9 〉 통과 (0.16ms, 30.6MB)
테스트 10 〉 통과 (0.13ms, 30.6MB)
테스트 11 〉 통과 (0.13ms, 30.5MB)
테스트 12 〉 통과 (0.16ms, 30.5MB)
테스트 13 〉 통과 (0.17ms, 30.6MB)
테스트 14 〉 통과 (4.58ms, 30.3MB)
に答える
初期日を12月31日に設定し、受信日と差異を求め、%7演算子を使用して曜日索引を挿入します.
あるいは
Dateメソッドによる簡略化
出典:プログラマーコードテスト練習、https://programmers.co.kr/learn/challenges
Reference
この問題について([AlgorithmProblem]2016年), 我々は、より多くの情報をここで見つけました https://velog.io/@idhyo0o/Algorithm-Problem-2016년テキストは自由に共有またはコピーできます。ただし、このドキュメントのURLは参考URLとして残しておいてください。
Collection and Share based on the CC Protocol