ミヤcom

女子大生のブログ

Java修行 第2回 世界のナベアツ問題:文字列を整数に

こんにちは。3の倍数と3のつく数字のときにバカになるミヤコです。

 

今回のJava問題では、数字を文字として扱う面白い問題でした。

 

f:id:xxmiyacomxx:20170914093938p:plain

 

問題 No.207 世界のなんとか

  

A以上B以下の整数のうち、3の倍数および3の付く数を、小さい順に出力してください。
なお、「3の付く数」とは、10進数表記にした時、
少なくとも1つの桁が3であるような数のことです。

 

入力

A B

 

出力

該当する数を、小さい順に。
1つ出力するごとに改行。
該当する数字がない場合は何も出力しない。

 

まさに世界のナベアツ的問題です。

 

 

最終コード

 

このようになりました。

 

public static void main(String[] args){
        Scanner sc = new Scanner(System.in);
        int A = sc.nextInt();
        int B = sc.nextInt();
        
        for(int i = A; i<=B; i++){
            if(i%3==0){
                System.out.println(i);
            }else if(Integer.toString(i).contains("3")){
                System.out.println(i);
            }
        }
}

 

「3の倍数」の部分は、クリアしやすいと思います。

あまりが0のものを出力するというわけですね。

 

問題は「3のつく数字」です。

Stringで扱う文字列には、文字列検索をするcontainsメソッドがありますから、

今回は 整数を、いったん文字列に変換して、3を含む文字も出力させるようにしましょう。

 

整数を文字列に変換するには、Integerクラスが持つtoStringメソッドを使います。

 

文字列になった整数 = Integer.toString(文字列にしたい整数)

 

これで、整数が文字列に変わりました。

さて、それから文字列探索をしていきます。

今回は文字列 i から3を探していくので、

 

Integer.toString(i).contains("3") 

 

探す 3 も文字列にしているところがポイントですね。

 

というわけで、ifの条件で「文字列 i の中に文字 3 が含まれていたらtrue」となり、

i が出力されるようになりました!

 

世界のナベアツも、実は奥が深いのですね。

 

本日も読んでくださって、ありがとうございます(*^_^*)

 

 

Java修行 番外編 成長を感じる?過去のコードと比較

こんにちは。 いきなり番外編のミヤコです。

 

yukicoder競技プログラミングの問題をいくつか解いていて、

うっかり昔解いた問題を、気づかず再び解いていました。

 

提出履歴にしっかり記録されていたので、

「過去の私はどんなコードを提出したのかしら」と確認してみることに。。。

f:id:xxmiyacomxx:20170914093716p:plain

 

問題 No.46 はじめのN歩

 

1歩でぴったりaセンチメートル歩ける。
bセンチメートルの区間を歩くのに最小で何歩歩く?
なお、区間はオーバーしても良い。

No.46 はじめのn歩 - yukicoder

 

入力

a b

 

出力

歩数を答える。

 

過去の解答(2017.02.10)

 

約半年前。めちゃめちゃ昔というわけでもないですが。

public static void main(String[] args){

    Scanner input=new Scanner(System.in);
    int a = input.nextInt();
    int b = input.nextInt();

    int steps = b/a; //歩数

    if(b%a!=0){
      steps++;
    }
    System.out.println(steps);
}

 

stepsという整数を用意してb/aを計算。

割り切れたらそのまま出力し、割り切れなかったらstepsを1増やして出力。

 

 

現在の解答(2017.09.11)

 

こちらです。

 

public static void main(String[] args){
        Scanner input = new Scanner(System.in);
        int a = input.nextInt();
        int b = input.nextInt();
        
        if(b%a==0){
            System.out.print(b/a);
        }else{
            System.out.print((int)(b/a)+1);
        }
}

 

ifを使って、割り切れる場合と割り切れない場合で出力。

考え方自体は、問題の性質上同じですが、

なんとなく(int)(b/a)+1というところから、書きながら考えている感じがします。

 

同じ問題でも、自分の書き方に違いが出ているのは、とても面白いですね。

 

そして、過去の"steps"を使用している私、なんとなくオシャレ。

ドヤ顔で書いていたことでしょう。

 

ぶっちゃけ書き方は好みの問題になると思いますが、

昔と今で書いたコードを比較してみると、意外な発見があるかもしれません。

 

本日も読んでくださり、ありがとうございます!(*^_^*)

 

Java修行 第1回 charAtメソッド

こんにちは。Java駆け出しのミヤコです。

f:id:xxmiyacomxx:20170914093316p:plain


大学の授業でJavaを使って数値解析などを行いましたが、

あまり触れない間に知識などがずいぶん抜けてしまったため、

Java修行ということで、できるようになったことをまとめていきたいと思います。

 

Tipsというやつ(いいたいだけ)

 

例題

 

abcdef
6


というふうに文字列と数字が与えられます。

与えられた数字Nを番号として、N番目の文字を取り出す問題です。

 

char型

 

今回は文字列を読み込んだあとに、aを1番目、bを2番目、・・・としていきます。

なんと、文字列のn番目の文字を抜き出すメソッドcharAtというものがあるようなので、これを使用することに。


ところで、

char型というのは、1文字を格納できるデータ型とのこと。

文字コードを使っているので、

 

char S = a;

 

といったように、文字を入れ込んでもダメなんですね。

char型に文字を入れる場合は、''(シングルクォーテーション)を使いましょう。

char S = 'a';

これで正しいです。

 

といっても、今回はこれを使ったわけではなく、charAtとの出会いです。

「え、char型はそれで終わり?」char型の続きがきになるみなさまは、

 

manga.crocro.com

 

こちらを 読むと、とてもわかりやすいです。

Javaの教科書ですね。

 

charAtメソッド

今回メインに使用したものはこちらになります。

このメソッドを使用することで、文字列からn番目の文字を抜き出すことができるそうです。すごい!

配列と同じく、先頭が0になりますから、n番目は、n-1を取り出す必要があります。

引っかかりませんでした(ドヤ) 

 

最終コード

 

public static void main(String[] args) {
        Scanner input = new Scanner(System.in);
        String str = input.next();
        int N = input.nextInt();
        System.out.println(str.charAt(N-1));
    }


charAtを使用するとき、文字列の指定をせず呼び出そうとしてエラーをもらった以外は、できていました。笑

今回はstrです。 
str.charAt というふうに、指定をしなければいけません。

 

このように、ゆっくり進んでいこうと思います。

第2回以降も、よろしくお願いいたします。

 

本日も読んでくださり、ありがとうございました!

時短朝ごはん!3分でできる簡単オムライスをつくってみた。

 

こんにちは。朝ごはんは時短が良い、ミヤコです。

 

みなさんは、「オムライス」好きですか?

 

f:id:xxmiyacomxx:20170911010535p:plain

 

私は大好きです!!

 

ただ、オムライスって、ケチャップライスと卵を別々に作らないといけないし、

洗い物も面倒。。。

時短からはかけ離れている食べ物ですよね。

 

そんなオムライス、3分でできてしまいます。

しかも、洗い物は1つ(+スプーン)だけ!

 

今回は日本テレビヒルナンデス」で紹介されていた、

忙しい朝にオススメの「マグカップオムライス」をつくってみました♪

 

f:id:xxmiyacomxx:20170912110949j:plain

 

それでは、材料とレシピをどうぞ! 

 

材料

 

一人分です。

 

・ご飯 150g(茶碗1杯分)

・卵 1個

・ツナ缶 35g(約半分)

ケチャップ 大さじ1

・マヨネーズ 大さじ1/2

・塩 少々

 

これが、紹介されていたオフィシャルな材料ですが、

「ツナ缶半分って、余るじゃん!」というぼっちの私は、ベーコンで代用。

というか、ベーコンのほうがオムライス感増しませんか?笑

 

ベーコンが多すぎてもいけないので、2枚使用です。

 

レシピ

 

① マグカップにご飯、ツナ缶(ベーコン)、ケチャップを入れて、ご飯の白い部分がなくなるまでスプーンでよく混ぜる。

 

f:id:xxmiyacomxx:20170912110932j:plain

 

② ①を平らにならす。ご飯を平らにするのがポイント。

 

③ ②のご飯の上にフチに隙間ができないようにマヨネーズをぬる(*)。隙間をつくらないようにぬるのがポイント。

 

f:id:xxmiyacomxx:20170912110935j:plain

 

だいぶマヨ!

(*)マヨネーズを塗ることで、卵を流し入れたときに、ご飯の層と卵の層を分けることができます!この作業大事。

 

④ 別の容器で卵を割り、塩で味付けし溶きほぐし、③の上に流し入れる。

 

f:id:xxmiyacomxx:20170912110925j:plain

 

⑤ ラップをせずに600Wの電子レンジで約2分(*2)加熱すれば完成。

 

f:id:xxmiyacomxx:20170912110940j:plain

 

(*2)半熟トロトロの卵にしたい場合は、1分半でも◯  

 

食べてみた

 

中盤だいぶマヨネーズ塗りたくってたけど、大丈夫かな・・・?

と思いましたが、卵とマヨが合わないわけがありませんでした。

マヨ感は多少ありますが、美味しいです!

 

ケチャップが少なかったかなと思ったので、次から多めにしてみよ〜!

 

私はベーコンを使用したので、包丁とまないた、

さらに溶き卵を作る別のお皿を使ったので、結果的に洗い物はそこそこありましたが、

ツナ缶にすれば本当に、マグカップとお皿とスプーンで済むオムライスです。

 

マグカップというミニサイズなので、

「小腹がすいたな〜」ってときとか、朝ごはんにピッタリですよね。

 

ぜひ作ってみてください♪

 

本日も読んでくださり、ありがとうございます(*^_^*)

 

ほぼ日ピンチ。心が折れそう。

こんにちは。ほぼ日毎日投稿のミヤコです。

 

ほぼ日毎日投稿・・・・のはずだったのですが、

自宅で写真を印刷してみると、急に変な色に!!

 

f:id:xxmiyacomxx:20170910220521j:plain

 

なんでだろう。。。。

先ほどインクを変えましたが、ずっとこんな感じです。

 

しかも、スマホの写真がダメなようです。

他の文書等はカラーも問題なし。うーん。

 

というわけで、写真だけはしばらくコンビニでの印刷になりそうです。

ちょっと高いので、週1にまとめて印刷の予定。

 

ほぼ日毎日投稿のハズだったのに〜!( ;  ; )

 

いきなり目標が挫折しましたが、週1まとめてほぼ日投稿がんばります!!

 

本日も見てくださってありがとうございます!

 

 

【ほぼ日】2017.09.09.SAT コンビニのコピー機でほぼ日。

f:id:xxmiyacomxx:20170909205644j:plain

プロフ画対策に。アイコンジェネレーターズでプロフィール画像を作ってみた。

こんにちは。プロフィール画像を変更した ミヤコ です。

 

一瞬うちのネコの画像にしていましたが、

アイコンジェネレーターズ」というアイコン作成サイトで、プロフィール画像を作ってみました!

 

www.icongenerators.net

 

「丸い顔」というのは、その名の通り顔が丸いのです。

他にも、「四角い顔」、「ちびっとジェネレータ」などがありました。

 

アイコンジェネレータを使ってみた

 

f:id:xxmiyacomxx:20170909173100p:plain

 

例にある顔が、みんなかわいい!

これくらい上手に作れるでしょうか。。。どきどき。

 

作成画面は、このような感じです。

 

f:id:xxmiyacomxx:20170909173141p:plain

 

Miiづくりっぽい。久しぶりの感覚です。

髪型が多すぎて、どれにするか迷う。

 

f:id:xxmiyacomxx:20170909173147p:plain

 

鼻の種類なんて、Miiをとくに思い出します。

 

このように、各パーツの種類/色がたくさんあるので、

世界に1つのオリジナルプロフィール画像が作れるかもしれません。

 

できあがった作品はこちら。

 

f:id:xxmiyacomxx:20170909173157p:plain

 

無難だな

 

私にはちょっと難しかったです。

 

 はてなブログに設置!

 

「アカウント設定」から、プロフィール画像を設定してみましたが、反映されず・・・・。

時間が経てばできるかと思いきや、2時間ほど待ってもダメそうだったので、

思い切って「設定」から「ブログアイコン」を変更してみることに。

 

f:id:xxmiyacomxx:20170909174040p:plain

 

できたー!

こうしてみると、けっこうカワイイです。

 

四角い顔もかわいかったので、そのうちやってみようかな。

 

プロフィール画像に困っているかた、アイコンジェネレーターズおすすめです!

 

本日も読んでくださり、ありがとうございました!