2021/11/07 ゼロ作OSその1&Atcoder2回目

November 2021 · 2 minute read

こんばんは。RockinWoolです。 今日から適当にミカノス本を進めていこうと思います。 ちなみに、昨日の記事を投稿しようとしたら、見知らぬエラーが大量に出てきたためこの記事に習って解決しました。なお、これ以外にも他のテーマをgit submoduleに加えていたようで、こちらの記事を参考にsubmoduleを初期化して対応いたしました。

mikanosその1(p28~)

ネタバレしないように感動した内容を語っていくと

その後AWSにバイナリファイルチェック用環境を整えて行きました。 なお、ubutu20.04のイメージを使用しています。

git clone https://github.com/uchan-nos/mikanos-build.git osbook

Atcoder開始A問題

作業中にAtcoderが始まってしまったので、こちらも挑戦。 ところが、この作業中にローカルのWindowsPCにg++等が存在しないことが判明! 仕方がないので脳内コンパイラでA問題を解いてみました(AC)

#include <iostream>

int main(){
    double X;

    std::cin >> X;
    X = int(X+0.5);
    std::cout << X <<std::endl;
}

四捨五入の関数とか知らなかったので愚直に実装。intにキャストすると切り捨てられることを想定して前もって0.5足しておけば良いのでは?となりAC。

AtcoderB問題

B問題は手元にpythonの実行環境ならばあったのでpyuthonで実装。 pythonならば同じ文字列でもset型でキャストしてしまえば統合されるので、簡単に実装できた。

#!/usr/bin/env python3
# 標準入力の方法については下記サイトを参考
# https://qiita.com/zenrshon/items/c4f3849552348b3dbe67

# 最初に数列の個数を取得
N = int(input())

# 数列を(文字列として)N個分だけ取得
base_array = [input().replace(" ","-") for l in range(N)]

# set型にキャストして数列内の数字の種類を返すようにする
base_array = set(base_array)
print(len(base_array))

ということで、今回はAtcoderのB問題まで溶けたところで終わりにします。 なお、次回はAWSにchrome remote desktop入れてQemuを動作させるところまで頑張ろうと思います。 ご閲覧ありがとうございます。