今日したこと
日記1日目です。今日からコツコツとやっていきましょう!!
- Atcorderのbeginersの過去問(A問題、B問題、C問題)
- WEBアプリケーション作成に向けて!!
AtcorderBeginners Contest 280のA問題、B問題に挑戦!!
友達から練習をするにはこの問題解くといいよとおすすめしてもらったので今現在の実力を測るために復習がてら解くことにしてみました。
A問題
まず、恥ずかしながら「shit」+@でmacはバックオート出すんですね、、
この記事で知りました!恥ずかしながら今日知りました、、、、
では問題はこちら!!
自分が書いたプログラムはこんな感じです!!
s = input().split()
count = 0
for _ in range(int(s[0])):
moji = list(input())
for i in range(int(s[1])):
if '#'== moji[i]:
count += 1
else:
print(count)
他の人のコードを見ると1行目の代わりにmap関数を使っていました。
map関数を知らなかったので調べました!!
map(関数,イテレーター(リストやタプル))
という形でイテレータの変数を関数によって弄れるらしいです。
具体的にはint型に変えたいときなどに使うみたいです。
今回の1行目を変えるとしたらこんな感じで
s,w=map(int,input.split())
使えば良いみたいです!!
これでsとwにはint型の文字が代入されています。
他には
open(0)
関数を使っている人がいました。
https://qiita.com/kyuna/items/8ee8916c2f4e36321a1c#4-open0
これはこの記事を参考にしてください!!
すごく詳しく書いていました。
B問題
問題はこちら!!
そして自分が書いたプログラムが↓↓↓
s = int(input())
num = list(map(int,input().split()))
count = 0
list = []
for i in range(s):
if i==0:
count+=num[i]
list.append(num[i])
else:
k = num[i]-count
count += k
list.append(k)
else:
for i in range(s):
print(list[i],end=' ')
A問題で学んだmap関数を使った。
print関数は改行が含まれる。
end を入れることにより、改行の代わりのものを出力。。
for i in range(s):
print(list[i],end=' ')
以下の形で書き換えできるらしい。
print(*list)
これはアンパックをしているらしい。
よくわからないけど、勉強しなければ、、、
C問題
C問題はこちら
そして自分が書いたプログラムが↓↓↓
S = list(input())
T = list(input())
count = 1
for i in range(len(S)):
if S[i] == T[i]:
count += 1
else:
break
print(count)
他の人のプログラムを見たところここではcountを出力するのではなくiの値を出力すればいいのか!!
Webアプリ作成に向けて
今回、とりあえず何か作ってみることが重要かなと思ったので、Udemyで作れるものを探します!!
ちょっと、最後適当になったけどこれからも頑張ります!!
宿題
- アンパックとは??