[第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」を返します.

せいげんじょうけん

  • 12016年は閏年です.
  • 12016年a月b日は実在の日である.(13月26日または2月45日などの日付は提供しません)
  • 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で割って値を求めます.
  • 2021-06-23
  • 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オブジェクトを使用して問題を解きます.これは簡単で実行しやすい方法のようです.

    整理する