初心者のプログラミング日記

プログラミング初心者の日記

プログラミングに関することを書いていきます。

ABC155(A~D)

A - Poor

https://atcoder.jp/contests/abc155/tasks/abc155_a

A,B,C=map(int,input().split())

if A==B==C:
    print("No")
elif  A==B or B==C or A==C:
    print("Yes")
else:
    print("No")

B - Papers, Please

https://atcoder.jp/contests/abc155/tasks/abc155_b

N=int(input())
A=list(map(int,input().split()))
num=[i for i in A if i%2==0]

for i in num:
    if not (i%3==0 or  i%5==0):
        print("DENIED")
        exit()
        
print("APPROVED")

自分は最初に偶数のリストを作りましたが、fo文でAをループさせて偶数をif文でするのでもいいです

C - Poll

https://atcoder.jp/contests/abc155/tasks/abc155_c

import collections

N=int(input())
S=[]
for i in range(N):
    line=str(input())
    S.append(line)
    
a=collections.Counter(S).most_common()
b=[]
num=0
for i,j in a:
    if j>num:
        num=j
    if num==j:
        b.append(i)

for i in b[::-1]:
    print(i)

一旦bのリストに格納し、for文で末尾から取り出さないと出力が逆になってしまうので、最後にその処理を行っています。
参考記事
https://note.nkmk.me/python-collections-counter/

D - Pairs

https://atcoder.jp/contests/abc155/tasks/abc155_d

import itertools

N,K=map(int,input().split())
A=list(map(int,input().split()))
ans=[]

for i,j in itertools.combinations(A, 2):
  num=i*j
  ans.append(num)
      
ans.sort()
print(ans[K-1])

itertools.combinationsを使うとリストから組み合わせを探してくれます。
参考サイト
https://note.nkmk.me/python-math-factorial-permutations-combinations/