[第1級]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」を返します.せいげんじょうけん
I/O例
abresult524"TUE"
私のやり方
function solution(a, b) {
let answer = Number();
let dates = [31, 29, 31, 30, 31, 30, 31, 31, 30, 31, 30, 31]; // 월별일수
let days = ["FRI", "SAT", "SUN", "MON", "TUE", "WED", "THU"]; // 요일
for(let i = 0; i < (a-1); i++) { // 월 - 1월 일수 계산하기 마지막 월은 b일이어서 따
answer += dates[i]
}
answer += b - 1; // array는 0부터 시작하므로
answer = days[(answer % 7)]
return answer;
}
日付数を足して計算するので、答えを数字にしてarrayに2016年の日数を入れました.2016年は金曜日からなので、曜日arrayの開始は金曜日から設置されています.for文を使用して、最後の月に個別に日数を計算する必要があるため、a-1を前の月に追加し、日数を使用して最後の月の日数を答えに追加します.arrayは0からなので1を外しました.そして、得られた日数を7で割って値を求めます.function solution(a, b) {
var answer = b;
let dates = [31, 29, 31, 30, 31, 30, 31, 31, 30, 31, 30, 31];
let days = ["FRI", "SAT", "SUN", "MON", "TUE", "WED", "THU"];
for(let i = 0; i < a - 1; i++) {
answer += dates[i];
}
return days[answer % 7 - 1];
}
// 일수를 더하기 위하여 answer의 기본값을 b로 정해 a월의 요일 수를 더한다.
// 금요일부터 시작하는 요일 배열과 12달의 일수를 담은 배열을 만든다.
// a월보다 한 달 적게 요일수를 더한다.
// 7로 나눈 후 dates의 인덱스를 return한다.
// 이 때 인덱스는 0부터 시작하므로 1을 빼준다.
他人のやり方
function getDayName(a,b){
var arr = ['SUN','MON','TUE','WED','THU','FRI','SAT'];
var date = new Date(`2016-${a}-${b}`);
var day = date.getDay()
return arr[day];
}
Dateオブジェクトを使用して問題を解きます.これは簡単で実行しやすい方法のようです.整理する
Reference
この問題について([第1級]2016年), 我々は、より多くの情報をここで見つけました https://velog.io/@songjihyun/Level-1-2016년テキストは自由に共有またはコピーできます。ただし、このドキュメントのURLは参考URLとして残しておいてください。
Collection and Share based on the CC Protocol