今日のAtCoder ～茶色コーダーまでの道～

AtCoderの日記として、今日解いた問題を記述してきます。
基本は、[ここ](https://qiita.com/drken/items/fd4e5e3630d0f5859067#5-%E9%81%8E%E5%8E%BB%E5%95%8F%E7%B2%BE%E9%81%B8-10-%E5%95%8F)*1に書かれている問題を解いていく形にしています。
競技プログラミングをやるときは、ローカルの環境よりも、楽に実行出来る[Paiza.io](https://paiza.io/ja)を使っています。

###ほぼ日記なので、口癖などは、気にしないでください。

# 本日解いた問題
1. [A - RGB Cards](https://atcoder.jp/contests/abc064/tasks/abc064_a)
1. [A - Infinite Coins](https://atcoder.jp/contests/abc088/tasks/abc088_a)
1. [A - Round Up the Mean](https://atcoder.jp/contests/abc082/tasks/abc082_a)
1. [A - Something on It](https://atcoder.jp/contests/abc095/tasks/abc095_a)
1. [A - Already 2018](https://atcoder.jp/contests/abc085/tasks/abc085_a)
1. [B - i18n](https://atcoder.jp/contests/abc069/tasks/abc069_b)
1. [B - Two Anagrams](https://atcoder.jp/contests/abc082/tasks/abc082_b)
1. [B - Break Number](https://atcoder.jp/contests/abc068/tasks/abc068_b)
1. [B - Maximum Difference](https://atcoder.jp/contests/abc102/tasks/abc102_b)


# それぞれのコード
### 一問目

```Python
r,g,b=map(str,input().split())
 
res=int(r+g+b)
if res%4==0:
    print("YES")
 
else:
    print("NO")
```
四の倍数ならばという条件だったので、あまりが0なら成立するんじゃね？と考えてかいた。

### 二問目
#### 正解

```Python
N=int(input())
A=int(input())
 
s=N%500
 
if s<=A:
    print("Yes")
    exit()
 
print("No")
```
####不正解


```Python
N=int(input())
A=int(input())
 
s=N//500
 
for i in range(A):
    if i+s*500==N:
        print("Yes")
        exit()
 
print("No")
```
最初は、合計金額を出して、求めれば良いのでは？と考えて実装した。
最後のテストの時にWAが出たので、組み直した。
二回目は、500のあまりが、1円の合計で作れたら良いんじゃね？というイメージで作成した。

### 三問目

```Python
a,b=map(int,input().split())
 
s=a+b
ss=s//2
s2=s%2
 
if s2==1:
    print(ss+1)
    exit()
print(ss)
```
```import math```を使って、関数を使うやり方が、シンプルになるんだろうけど、アルゴリズムを書く力を鍛えたいなと思って、切り捨ててから、＋1をするという書き方で書いてみた。
（全然スマートじゃない書き方）

### 四問目
最初

```Python
S=input()
 
cou=int(S.count("o"))*100
 
print(700+cou)
```
二回目

```Python
S=input()
 
res=700
for i in S:
    if i=="o":
        res+=100
 
print(res)
```
三回目

```Python
res=700
for i in input():
    if i=="o":
        res+=100
 
print(res)
```

countを使って調べて計算すれば、簡単に求まるなと思ったので、countを使った。
countを使えない時用に、ifとforを使って書いてみたのが二回目
若干、コードを短く出来ると思って、三回目を書きました。


### 五問目

```Python
S=input()
S="2018"+S[4:]
print(S)
```

```Python
print("2018"+input()[4:])
```
最初を2018に変更すれば良いだけだったので、最初の数文字を2018に変更して、出力した。短くしようと思ったら、1行で出力できた。

### 六問目

```Python
s=input()
 
fir=s[0]
las=s[-1]
 
s=s[1:]
s=s[:-1]
 
print(fir+str(len(s))+las)
```
間の文字をカウントして、最初と最後の文字を結合して出力すれば、良いという問題だった。
最初の文字と最後の文字を代入
最初と最後の文字を消す
中の文字をカウントする
文字列にして出力するという書き方で書いた。

### 七問目

```Python
s=input()
t=input()
 
s=sorted(s)
s="".join(s)
t=sorted(t,reverse=True)
t="".join(t)
# print(s,t)
if s<t:
    print("Yes")
    
else:
    print("No")
```
sortedの使い方をわかることが出来た問題
結構無駄があるコードになった。


### 八問目

```Python
N=int(input())
n=1
while True:
    if n>N:
        print(int(n/2))
        break
    
    n=n*2
```
2で割れる数字は、2のn乗が一番大きいので、2倍していく形にした。

### 九問目

```Python
N=int(input())
lis=list(map(int,input().split()))
 
lis.sort(reverse=True)
 
print(lis[0]-lis[-1])
```
ソートして、最初と最後の文字を引けば良いなと思って、ソートして出力した。
元記事だと、for文でかけるぜ！的な事が書かれていたけど、どうやったら良いんだろ。


# 参考文献
*1 [AtCoder に登録したら次にやること ～ これだけ解けば十分闘える！過去問精選 10 問 ～](https://qiita.com/drken/items/fd4e5e3630d0f5859067#5-%E9%81%8E%E5%8E%BB%E5%95%8F%E7%B2%BE%E9%81%B8-10-%E5%95%8F)