oniwan111’s blog

学生が少しでも社会の役に立てればいいなと思って始めたブログです

AtCoder Beginner Contest 049 in Python C

C問題解いてみました
正規表現を勉強したので、使ってみます


C.

#import library
import re

#prepare
S = ''
T = ''
regex = r'(dream|dreamer|erase|eraser)+$'

#input
S = raw_input()

#output
if re.match(regex,S):
    print 'YES'
else:
    print 'NO'

以下のサイトから引用します

uxmilk.jp

$ 文字列の末尾

  1. 一回以上の繰り返し
 和集合

() グループ化

これで、
(dream|dreamer|erase|eraser)+$
は、'dream','dreamer','erase','eraser'のどれかを末尾から一回以上繰り返す
ってことになるんだと思います(多分)

なんとかC問題を解けるようになりたい!

AtCoder Beginner Contest 002 in Python

ABC 002の問題を解いてみました.
B問題は勉強のために正規表現を使ってみました.

僕の競技プログラミングの目的は,すごい成績を出すことではなく,プログラミングの勉強なので時間かかっても一問ずつ解いていこうと思います.

A.

#input
X, Y = map(int,raw_input().split())
 
#output
print max(X,Y)

競技プログラミングの入力ができるようになるまでに大変時間がかかりました笑
以下のサイトを参考にして勉強しました.
この記事で大体の入力は事足りる気がします

[http://qiita.com/lethe2211/items/6cbade2bc547649bc040:embed:cite]

B.

>|python|
#import library
import re
  
#input
 
W = ''
W = raw_input()
 
#regular expression 
regex = r'[aiueo]' 
result = re.sub(regex,'',W)

#output
print result

いっぱい解答は転がっているんですけど,正規表現使ってみたかったので使ってみました
[aiueo],これをre.sub()を使って取り除けばいけました

AtCoder Beginner Contest 001 in Python

ABC 001 のコードです.

A.

#input
 
H1 = int(raw_input())
H2 = int(raw_input())
 
#output
print H1 - H2


B.

#input
m = int(raw_input())
 
d=0
 
if m<100:
	d=0
elif m<=5000:
	d=m/100
elif m<=30000:
	d=m/1000+50
elif m<=70000:
	d=(m/1000-30)/5+80
elif m>70000:
	d=89
 
print "%02d" % d

%なんちゃらってのは,Cのプログラミングの授業でやったなあと思い出す.
これは,フォーマット表記というものらしい(たぶん)

この問題を解いた後に,AtCoderの結果から他人のコードを見れることに気付き,記事にする意義を見失いましたが,
AtCoderさんに雑魚い地方国立大生のプログラミングの勉強の役に立ってるよってことを知らせるためにやっていこうと思います.
(あと,千葉大工学部受けたor入学した人にこんな風に勉強していけばいいんだってことをわかってもらえたら嬉しいです)

AtCoder Beginner Contest 049 in Python

ABC 049 解いてみました
C以降はまた今度


まずは、B問題までを全部解いてみようと思います

A.

#input

c = str(raw_input())

#judge

if c == 'a':
    print 'vowel'
elif c == 'i':
    print 'vowel'
elif c == 'u':
    print 'vowel'
elif c == 'e':
    print 'vowel'
elif c == 'o':
    print 'vowel'
else:
    print 'consonant'

B.

#prepare
Char = ''
#input
H, W = map(int,raw_input().split())

for i in range(H):
    Char = raw_input()
    print '%s\n%s\n' %(Char,Char)

AtCoder Beginner Contest 050 in Python

AtCoder Beginner Contest (ABC) 050解いてみました

A.


#input
N = raw_input()
A = []
A = raw_input().split()
A1 = A[:]
#even or odd

#N = odd
if N % 2 == 1:
    for i in range(N):
        if A1[i] % 2 == 0:
            A1[i] = True
        else:
             A1[i] = False
    if all(A1) == True:
        mx = max(A)
        print ( mx / 2 ) ** 2
    else:
        print 0

#N = even
elif N % 2 == 0:
    for j in range(N):
        if A1[i] % 2 == 1:
            A1[i] = True
        else:
            A1[i] = False
    if all(A1) == True:
        mx = max(A)
        print ( (mx + 1) / 2 ) ** 2
    else:
        print 0

B.

#input
T = []
N = int(raw_input())
T = raw_input().split()
M = int(raw_input())
PX = []
X = 0
T1 = []

#input matrix
for i in range(M):
    PX.append(map(int,raw_input().split()))


for j in range(M):
    #new time
    T1 = T[:]
    PJ = PX[j][0]
    XJ = PX[j][1]
    a = int(PJ)
    b = int(XJ)
    T1[a-1] = b
    
    #plus each time
    X = 0
    for k in range(N):
            X += int(T1[k])
    print X

C.勉強中
D.まだ無理

まだまだ勉強中です
もっと良いコードを教えてください

Pythonでフォルダ内のファイルを一括renameしてみた 続き

pythonで一括renameのプログラムを更新しました

前記事
oniwan111.hatenablog.com


プログラミングは鋭意勉強中ですので、たびたび更新があります笑

ここ最近は、研究が忙しいのと、勉強に忙しく、更新する暇がありませんでした


以下、コードです

sys.argv[1]
を使って、一々プログラムを開かなくてもrenameできるようにしました笑

よければ是非使ってください

#!/usr/bin/env python
# -*- coding:utf-8 -*-

#usage: python rename3.py /home/.../....#

import os
import sys

cnt = 0

#ディレクトリを指定
directory = sys.argv[1]
#画像データのリストを作成
filelist = os.listdir(directory)

#名前をつける
for file in filelist:
    path = os.path.join(directory,file)
    name = 'image_%04d'%cnt+'.jpg'
    target = os.path.join(directory,name)
    os.rename(path,target)
    cnt = cnt + 1

TOEFL Speaking

TOEFL Speaking

Writing のテンプレートをあげようと思っていたのですが、ノートパソコンに保存されていて、ノートパソコンの調子が悪く、取り出すことができなかったので、Speakingについての記事を書きます

 

Speakingの勉強法についてですが、僕のおすすめの方法は、

 

テンプレート丸暗記!!!

 

Task1-6まで僕はひたすらテンプレートを丸暗記して、あとはキーワードをそこに埋め込む!!

それを時間をきっちり測って取り組む練習を繰り返すことでS18を獲得しました

 

ちなみに、僕のSpeaking力は酷く、日本の中学生の英語力と言われたことがあるくらいです笑

実際、ネイティブと話していても片言の英語でなんとか伝える感じです笑

それでも、S18を獲得することが出来ましたので、みなさんも少しやればすぐできるようになると思います

 

ダメな方法について

僕はSpeakingの勉強から逃げ続け、結局最後の二週間で詰め込むことになりました

「まだ、Listening力ないし...」

とか言ってないでさっさと取り組むことが重要です

僕はそうやって数カ月を無駄にして後悔しています

 

ですので、必ず

  • テンプレートを早く暗記する
  • 時間を測って練習

これを一刻も早くやりましょう!!