プログラミングを上達させたい

情報学専攻の大学院→放送局でCMの営業など@大阪→舞台俳優&IT営業@東京

京都大学プログラミングコンテストを全部schemeで解こう(A,B)

久しぶりの投稿です。
最近はあまり時間がとれてないので(忙しいわけではなく、やる気が出ない)、前からかなり空いちゃいました。

さて、先日(7/5)に京都大学プログラミングコンテスト2014がありました。
せっかくなので参加してみました。

難しい問題ばかりなので、ほとんど点数はとれなかったのですが、面白そうな問題ばっかりでした。
ゆっくり時間をかけてでも全部解けば相当実力がつくのでは・・・?ということで、ゆっくりゆっくりやってみようと思います。
しかもなるたけ、schemeで。

続きを読む

Javaで、小数の四捨五入や、小数点以下を指定して出力するなど

さて、AtCoderで毎日やるのもいいんですが、こう、なにか蓄積されるような?感じがいいなということで、別のサイトも使いはじめました。
かの有名な会津オンラインジャッジ(AOJ)Project Eulerです。
ただ、いまはProject Eulerはなんか問題があったとかで繋がらないようなので、こっちのサイトを見て解いています。
ペースとしては2つとも1日1問です。
なるべく途切れることのなく、毎日続けていけたら、と思っています。
ちなみにAOJではJava、Project EulerではSchemeで解いています。

続きを読む

AtCoder Beginner Contest #010 A〜C問題をschemeで

AtCoder Beginner Contest #010に参加しました。
A〜C問題は簡単に解けたのですが、D問題がさっぱり・・・
この辺が、1つの壁のような気がします。
超えるには、まだまだ経験も必要ですし、お勉強も必要なような。

さて、今回解けた3問は全てschemeで解きました。

続きを読む

AtCoderで、提出したschemeプログラムを向こうでコンパイルする方法

今日も今日とて、一番得意な?言語であるschemeで、ちょくちょくAtCoderの問題を解いています。


さて、今回はタイトルの通り、AtCoderのシステム内でなんとかschemeをコンパイルして使う、ということについてです。
それをやろうと思ったきっかけはこの問題。

AtCoder Beginner Contest #06 B問題 トリボナッチ数列

続きを読む

schemeの配列(ベクトル)を使って問題を解く

schemeは関数型言語なので、配列よりも、再帰的に定義されているリストの方が便利です。
そのため、基本的にschemeの本やら解説で、schemeだとこの問題はこんな風に、という例ではたいていリストが使われます。

しかし、リストは配列に比べ、値へのアクセスが遅いです。長さをnとするとO(n)ですね。配列ならO(1)です。(間違っていたらすみません)
その分、削除やら追加などは速いのですが。
よって、動的計画法みたいなのをするときは、リストではなく配列を使いたいところです。
もちろんschemeにも配列にあたるものとして、ベクトルというものが提供されています。

これまで、配列を使うべきな感じの問題は、なんとなくschemeではなくJavaで解いていました。
なんとなくというか、schemeでベクトルの使い方をよく理解していなかったので、避けてきました。
破壊的操作がどうとか、そういうのです。
しかし、とりあえずやってみようということで、今回はschemeのベクトルを使って何かしら問題を解いてみようと思いました。

続きを読む

AtCoder Regular Contest 022 B問題をschemeで

最近、AtCoderの時間に何かしら用事があって、2回連続で参加できていません。
出来れば、毎週やりたいのに・・・
やはり、良いにしろ悪いにしろ、自分の実力を示す結果が出てくる、ってのはモチベーションを高めてくれます。
今週末もキツそうなのですが、なんとか参加したいものです。
最近、毎週コンテストが開催されていますね。本当にすごいです。


さて、そんな感じなので一番最近参加したのはAtCoder Regular Contest #023です。
1問しか解けませんでした。2問目の問題文を読み間違え?、3問目にとりかかりました。
そしてJavaでコードを書いて提出したのですが、

続きを読む

ATCODERのBiginner Contestの過去問(ABC005C)をschemeで。

毎日プログラミングやってるわけではないので、連日の更新はやはり難しいですね。

とりあえず、なんか頑張って解いたものとして、Atcoder Bigenner Contestの#005のC問題について書きます。

 

問題は下のURLのものです。

http://abc005.contest.atcoder.jp/tasks/abc005_3

 

続きを読む