ペースダウン
ゴルフやるペースがすっかり落ちてしまった。
モチベーション上げて行こう。
transpose lines
入力された文字列を縦読みして出力しろっていう問題。
最初の方針として文字列を全て読み込んでから、1行の長さを判断して1文字づつ縦読みしていく方針で挑んでみた。
長くなりそうだなと思いつつ、とりあえず作ってみたけど案の定長くなってしまってへこむorz
そこから軽く削ってみてやっぱり駄目だと思って放棄。
出力用の文字列を作っておいてまとめて出力する方針に変更して106Bまで縮んだ。
まだまだ無駄が多いけど80B台まで削っていけるかな・・・
106B
char c[99][99]; j, k, l; main(i) { for(; (i = getchar()) > 0;) i > 10 ? c[j++][k] = i : (l = j, j = 0, k++); for(; j < l;) puts(c[j++]); }
記録として最初のコードもぺたり。
124B版
char c[]; j, k , l, m; main(i) { for(i = read(0, c, 999), j = strchr(c, 10) - c; m < j;) l < i / (j + 1) ? putchar(c[k]), k += j + 1, l++ : (puts(""), k = ++m, l = 0); }
119B版
char c[]; j, k , l, m; main(i) { for(j = read(0, c, 999), i += strchr(c, 10) - c; m < i;) l < j / i ? putchar(c[k]), k += i, l++ : (puts(""), k = ++m, l = 0); }