1
0

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?

今日もPaizaの条件分岐 – 曜日判定にチャレンジ!


🧩 問題概要

問題はシンプル、「1日は日曜日。X日は何曜日か?」。

入力例:

11

出力例:

Wed




✅コード例:条件武器で解く

const rl = require('readline').createInterface({ input: process.stdin });

rl.once('line', (input) => {
    const X = Number(input);
    const day = (X - 1) % 7;

    if (day === 0) console.log("Sun");
    else if (day === 1) console.log("Mon");
    else if (day === 2) console.log("Tue");
    else if (day === 3) console.log("Wed");
    else if (day === 4) console.log("Thu");
    else if (day === 5) console.log("Fri");
    else if (day === 6) console.log("Sat");

    rl.close();
});




✅コード例2:配列

const rl = require('readline').createInterface({input:process.stdin});


rl.once('line',(input) => {
    const X = Number(input);
    
    const week = ["Sat", "Sun", "Mon", "Tue", "Wed", "Thu", "Fri"];
    
    console.log(week[X % 7]);
    
    rl.close();
});
  • 1 日は日曜日ということから、7で割ったときに1余る日が日曜日として曜日の配列を作成。
  • インデックスでアクセスして曜日を取得。



🔍 気づきメモ

  • 1日は日曜日→つまり X = 1 のとき "Sun" を返すように余りと曜日を配列に。
  • X % 7 の結果に対応するように、配列の 0 番目は”Sat”にする必要がある。
  • if文で全部書くより、データをうまく構造化(今回なら配列)する方がスマート。



📣 まとめ

「曜日の判定って、ただの7通り」だけど、条件分岐以外にも解き方があって、勉強になった!




僕の失敗談(´;ω;`)と解決法🐈




💡おまけ

年月日が入力され、その曜日を出力する問題だった場合を考えてみる。

✅ コード:年月日を入力して曜日を出力

// 標準入力の読み取り設定
const readline = require('readline');
const rl = readline.createInterface({ input: process.stdin });

// 入力を1行だけ読み取る
rl.on('line', (input) => {
    // 入力を空白で分割し、数値に変換(例:2025 5 23)
    const [year, month, day] = input.split(' ').map(Number);

    // 月は0始まりのため、1引く(JavaScriptの仕様)
    const date = new Date(year, month - 1, day);

    // 曜日の配列(getDay()の戻り値に対応)
    const week = ['Sun', 'Mon', 'Tue', 'Wed', 'Thu', 'Fri', 'Sat'];

    // 曜日インデックスを取得し、対応する文字列を出力
    console.log(week[date.getDay()]);

    rl.close();
});
  • Date オブジェクトを使うことで、指定した日付の曜日やその他の情報を取得できるようになる。
  • JavaScript の Date では月(month)は 0 始まり(1月が 0、12月が 11)なので month - 1 が必要。
  • getDay() は曜日インデックス( 0 : 日曜 〜 6 : 土曜)を返す
  • そのインデックスをもとに week 配列から文字で出力



スクリーンショット 2025-05-24 214215.png

1
0
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
1
0

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?