Python3でpaiza online hackathon 7を解いた話

ゲーム感覚でやると楽しい、とても楽しい。途中まで解いて、「あれ…あとからコード見直せないの…」ってなって、また書き直すのはつらかったけど。

 

 

つり目

 

num = int(input().rstrip())

print("Ann" * num)

 

眼帯

 

all_book = [i for i in range(1,int(input().rstrip())+1)]
num1 = int(input().rstrip())
my_book = [int(i) for i in input().rstrip().split()]
num2 = int(input().rstrip())
store_book = [int(i) for i in input().rstrip().split()]

buy_book =

for i in all_book:
    if i not in my_book and i in store_book:
        buy_book.append(str(i))

if len(buy_book) == 0:
    print("None")
else:
    print(" ".join(buy_book))

 

猫耳

 

print(input().rstrip().count("cat"))

 

 

data = input().rstrip()
count_c = data.count("c")
count_a = data.count("a")
count_t = data.count("t")

print(min(count_c, count_a, count_t))
print(max(count_c, count_a, count_t) - count_c)
print(max(count_c, count_a, count_t) - count_a)
print(max(count_c, count_a, count_t) - count_t)

 

ショートヘア

 

print(int(input().rstrip()) + int(input().rstrip()))

 

ロングヘア

 

data = [input().rstrip() for _ in range(5)]

if data.count("yes") > data.count("no"):
    print("yes")
else:
    print("no")

 

ポニーテール

 

data = int(input().rstrip())

while data >= 0:
    if data != 0:
        print(data)
    else:
        print(str(data) + "!!")
    data -= 1

 

ツインテール

 

drink1 = [int(i) for i in input().rstrip().split()]
drink2 = [int(i) for i in input().rstrip().split()]

if drink1[0] / drink1[1] > drink2[0] / drink2[1]:
    print(1)
else:
    print(2)

 

セーラー服

 

data = int(input().rstrip())

words = [input().rstrip() for _ in range(data)]

print("_".join(words))

 

カーディガン

 

total = 1

for i in range(1, int(input().rstrip()) + 1):
    total *= i

print(total)

 

縞ニーソックス

 

 

len_one = int(input().rstrip())
len_all = int(input().rstrip())

repeat = len_all // len_one
rest = len_all % len_one

for i in range(1, repeat + 1):
    if i % 2 == 1:
        print("R" * len_one, end = "")
    else:
        print("W" * len_one, end = "")

if repeat % 2 == 1:
    print("W" * rest, end = "")
else:
    print("R" * rest, end = "")

 

メイド服

 

work = int(input().rstrip())

day = 24 * 60
hour = 60
min_sleep = 6 * hour
wakeup = 7 * hour

for _ in range(work):
    overwork = int(input().rstrip())
    require_sleep = min_sleep + overwork / 3

    if require_sleep <= wakeup:
        sleep_hour = (wakeup - require_sleep) // 60
        sleep_min = wakeup - require_sleep - 60 * sleep_hour
    elif require_sleep > wakeup:
        sleep_hour = (day + wakeup - require_sleep) // 60
        sleep_min = day + wakeup - require_sleep - 60 * sleep_hour

    print("{:02d}{}{:02d}".format(int(sleep_hour), ":", int(sleep_min)))

 

サンタ服

 

X, Y, Z, N = map(int, input().rstrip().split())

forward = [0, X]
side = [0, Y]

for i in range(N):
    data = list(map(int, input().rstrip().split()))
    if data[0] == 0:
        forward.append(data[1])
    else:
        side.append(data[1])

forward.sort()
side.sort()

forward_margin =
side_margin = []

def margin(originallist, resultlist):
    for i in range(1, len(originallist)):
        resultlist.append(originallist[i] - originallist[i-1])

margin(forward, forward_margin)
margin(side, side_margin)

print(min(forward_margin) * min(side_margin) * Z)

 

水着

 

ん〜わからん。正解のコードは以下のサイトにあった。

 

めがね

 

ん〜これもわからん。正解のコードは以下のサイト。

 

メイド服はpaizaランクCの問題なんやけど、全然わからなくて苦労した。datetime使うんかなぁとか4時間以上悩んでた気がする。でも解けたときは「やった〜」っていう達成感があった。

サンタ服はすんなりこうしたらええんかなぁってのが浮かんだ。

めがねの問題はわかりそうで、わからなかった。まだ勉強が足りひんのやろうなぁ。悔しい…。

水着の問題はPOH7 安藤杏ちゃんに水着をPythonでプレゼントした話 - Qiitaにあった最終的なコードを自分も思いついて提出したけど、なぜかwrong answerになってしまう。で、さっきの方が書かれたコードをコピペして提出しても通らないし、お手上げ状態。

初心者の自分のコードよりもっと効率的でわかりやすい書き方もあると思うから、もっと勉強して、いずれ見直して書き直したい。