LoginSignup
1
0

More than 1 year has passed since last update.

基本的なソートを勉強してみた〜ひよこになるため日記【3日目(12/11)】〜

Last updated at Posted at 2022-12-14

3日目

こんにちわ。
今日はドトールコーヒーに来て勉強をしています。
ドトールコーヒーは安くて、wi-fi、コンセントもある。めちゃくちゃ学生の味方だと思ってます。
ここだけの話で本当はスタバに行きたいけど、お金がないかつ田舎すぎてスタバが近くにないだけ、、、、
俺もプログラミング勉強して、都会に出るぞーー😏と意気込んで3年が経った男です。
この日記もいつまで続くのか、、、
そんなことはおいといて、今日やったことはこちら

  • ABC問題の今後の勉強計画
  • 実際にやってみた

この三本立てです。よろしくお願いします。

ABC問題の今後の勉強計画

まず、一回自分は何のためにプログラミングを勉強しているのか、、と改めて考えたところ
理由はは3つあって

  • 就職活動でのコーディングテストを受かるため
  • 情報系の学生としての威厳を保つため
  • プログラミングかけたらモテそうだから

3つ目の理由は置いといて、こんな理由です。
やっぱ1番目の理由がめちゃくちゃ大きいです。
こんな形で今焦って勉強しているって感じです。

勉強スケジュール

今のところは2月にコーディングテストをある程度解けるようにしたい。
そのため、ネットで調べたとことB、C問題が解けるようになっていればある程度いけると言うことを見ました。
なので、2月まで毎日過去問も含めて、B問題とC問題をアウトプットする環境を作ります。

では、最初はどんな感じでやっていくか、、、
そしたら@drken さんのこちらの記事を参考にし、今週一週間の目標をとりあえず決めました。

とりあえず、今週はpracticeの問題を解く!!
例題、類題も含めてB、C問題を完璧にしていきたいです。

では、今週の予定表

日付 内容
12/11 practice1~4
12/14 practice5~7
12/15 practice8~10
12/16 12/11,12のできなかった問題の類題を解く
12/17 12/13のできなかった問題の類題を解く
こんな形でまずは攻めたいと思います。

では、今日の問題を行きましょう〜〜

ABC問題解いてみた

Practice1

まずは自分の書いたコードから

自分が書いたコード
s,w = list(map(int,input().split()))
if s*w%2==0:
  print('Even') 
else:
  print('Odd')

この問題は2つの特徴があるかなと思ってます。

  • 奇数、偶数の判定できるか
  • 標準入力の文字を整数型に変え方わかっているか

この2つができるたら書けるかなと思いました。
もしこのコードをもう少し短くするなら

print("Odd" if a * b % 2 else "Even")

このように書き換えれます!!
自然と使えるようになりてー

Practice2

まずは自分の書いたコードから

自分のコード
num = list(map(int,input()))
print(sum(num))

昨日使えなかったsumが使えたーーー
これは成長ですねーー
嬉しいーーーー
この問題のポイントは

  • list()関数をしっているかどうか
  • 0と1をどのように判定するか

自分は今回1の個数を数えるだけだったので足しちゃいました。
もし、0の個数を数えるなら

  • 今回のように1の個数を数えて、全体から引く
  • 0をif文とかでカウントする

他の人のコードには

print(S.count('1'))

1の文字をカウントするっていうのもありました。
これならif文を使わなくても綺麗に書けますね

Practice3

まずは自分の書いたコードはこちらから

自分が書いたコード
def check(count,num,num_list):
  for i in range(num):
    if num_list[i]%2 !=0:
      print(count)
      break
    else:
      num_list[i] = num_list[i]/2
  else:
    count +=1
    check(count,num,num_list)
      

num = int(input())
num_list = list(map(int,input().split()))
count = 0
check(count,num,num_list)

この問題のポイントは

  • 繰り返しの処理が行えるか
  • 線形探索ができているかどうか

この処理を線形探索ということを知った。。。これからかっこつけて使っていきますね

Prctice4

自分が書いたコード
A = int(input())
B = int(input())
C = int(input())
X = int(input())
count = 0
for a in range(A+1):
  for b in range(B+1):
    for c in range(C+1):
      if X==a*500+b*100+c*50:
        count += 1
print(count)

これは全探索というやり方。
少しずつ、アルゴリズムの勉強をしていかないといけない。。。
っていうのを掴んだ1日でした。

1
0
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
1
0