[プログラマー]2016年



皆さんこんにちはMINDOLです


今日は2016年の質問に答えましょう!
Programmers一級の質問にPythonで答えました

2016年


質問リンク

実際に2016年に日付を入力したのは曜日の問題!

整理すると、


1月1日を基準として,実際の曜日を計算する
関数を使用すると、この問題をより直感的に解くことができます.また、私のように関数を使用しないこともできます.
Pythonライブラリがよくわからないので、関数はあまり使いません!
では、私が解読したコードを見てみましょう.
def solution(a, b):
    answer = ''
    day = b % 7 - 1
    firstDay = ["FRI", "MON", "TUE", "FRI", "SUN",
                "WED", "FRI", "MON", "THU", "SAT", "TUE", "THU"]
    array = ["SUN", "MON", "TUE", "WED", "THU", "FRI", "SAT"]
    answer = firstDay[a - 1]
    for idx in range(len(array)):
        if array[idx] == answer:
            day = (idx + day) % 7
            answer = array[day]
            break
    return answer
(並ぶのがおっくう)
まず、1月から12月までの1日中の曜日を並べます.
そして、月曜日は7日おきに繰り返されるので、b日を7日に分けて残りの部分をdayに保存します.
array配列で曜日を検索し、場所を見つけたidxとdayを参照して値を答えに入れます.(idxとdayを加算すると7つ以上のインデックスが発生する可能性があるため、残りのインデックスに戻します.)
実行すると、良い値が表示されます!!
では、私の文章を読んでくれてありがとう.

-終了-