「ん、なぁにユイちゃん。私になにか用事?」
近づいた私に目を向けるちょっとパンクな隠れ金髪の同級生の人。なおこれでも冬休み前に情報のテストで私と一位二位を争った仲であり、放課後の勉強会で情報や数学を担当している人だ。まあ教科担当と言ってもコロコロ変わるんだけれどもね。
「ちょっと情報の共通テストでわからないことがあって」
「……ユイちゃんがわからないって言ったら私もわかるか怪しいけど」
そう言いながらも私が差し出したプリントをしっかりと彼女は睨みつけている。目がかっこいいんだよな。
「んー、模範解答は出てるんじゃない?」
「こちら。でもこれがわからなくて」
私は解説というには短い説明の一文を指差す。何だよ実際にやってみればわかるって。
「ふむふむ、for文内で配列の添字を変えながらある値と一致するかどうか確認するやつね」
私と彼女の間ならこれで行けるが、たぶん真山くんに確認するときはもう少しちゃんとやったほうがいいかな。
イメージはこうだ。サナヤマという名字の人がクラスにいるなら出席番号の何番目か、いないならいないということを知りたい。
普通の場合、全員を出席番号順に一列に並べて前の方から聞いていきながら手元でカウンターをカチカチとやって、サナヤマさんがいたらカウンターの数字を出力。いない状態でクラス全員の確認を終えたらいなかったと出力すればいい。
「でもさ、なんか変なことを前後にやっているんだよ」
まず一列にしたクラスの人の後ろにサナヤマという名字の人を追加して、何やら繰り返し作業をして、終わったあとでカウンターの数字を確認して、それがクラスの人数より多い数字になるかどうかを見ている。
「なるほど、で、このfor文の中に入る適切なやつを選べってこと?」
私が頷くと彼女は納得したようだ。ちなみに私が適当に選んだやつは間違いでした。前後の作業の意味がわからなかったし、考えていたアルゴリズムに該当するものもなかった。
「こんな書き方、する?普通ループ中で場合分けしない?」
「番兵だよ」
「ばんぺい?」
「ええと英語だと何だったかな……centralじゃないけどそんな感じのやつ」
「漢字だと?」
「見張りをする番人の
「sentinel、かな。歩哨って訳す事が多いけど」
「たぶんそれ、ええとそれを数列の末尾につけておくと、このループ内にbreakを入れなくても必ず終わるようになる」
「んーと、ちょっと待って」
「いいよ」
頭の中で作業をシミュレートしていく。普段の作業なら名前を聞いて、カウンターの数字を確認して、まだ作業が終わってなかったら次の人に行くようにしていた。
でも、今回は必ずサナヤマさんがいる。複数いるかもしれないが、その場合は出席番号が大きい人のほうが無視される。問題的には重複はないので大丈夫だけど。
「そっか、終わるまでに必ず判定に成功するから毎回のiの大小関係確認が必要ないのか」
「……そう。それで後は見つかったときのnをもとの数列の要素数と比較すればいい」
「なるほどね」
それで見つけたサナヤマさんが最後尾にいたら、それは逆に言えばもとの生徒の列にはサナヤマさんはいなかったことになる。となると、選択肢の中で一番短い行数のやつが正解か。わかるかこんなもん。
「こうするとコードが書きやすくなる」
「……短いやつは引っ掛けかと思ったよ」
「わかった?」
「うん、ありがとう」
「どういたしまして。それにしてもユイちゃん真面目だね」
「そう?」
「真面目なのは自習室での勉強が楽しいからかな?」
ちょっと笑っているのを見て、なんだ知っているのかと私は息を吐く。とはいえ別にからかうってほどでもないな。仲がいいならいいことだけど、ぐらいの。以前私と真山くんについて恋人っぽい扱いをした事があったからな。
「……別に二人きりの空間じゃないから」
「他の利用者いないでしょ?」
「知ってるの?」
「たまに前を通ってもユイちゃんと翔太くんが真面目に勉強してるとこしか見ないから」
見られてたのか。今後は注意しないと。なにかやることがあったら廊下からの死角でやらないとね。
「……私はそこまで真面目じゃないよ、真山くんがいなかったら勉強もしてなかっただろうし」
「そう。まあ私は自分と同じぐらい情報できる人いて嬉しいけどね」
ちょっと悪ぶっていそうな、でも嬉しそうな笑顔。いいやつなのかもしれない。少なくともいきなり出された問題を解いてくれるのはいい人だろう。
「……ちょっと相談がある、って言ったら聞いてくれる?」
「内容にもよるけど」
「真山くんとの関係で、少し」
「……私、そういうの下手だよ?」
「中立的な人が欲しくて。私の知り合いだと真山くん寄りの人も多いから」
彼女と真山くんは、まあ仲が悪い訳では無いが別にそこまで偏って見る人でもない。私と彼女の付き合いはそこまで深いと言えるかはわからないけど、少なくとも好敵手みたいなところはある。恋愛的な意味ではなくて、ね。
「そう、いいけど」
そう言って彼女はスマホを取り出して、メッセージアプリで自分のアカウントの画面を表示させた。