티스토리 뷰

후기

Codeforces Round #698 (Div. 2)버추얼

KWG07(joseph0528) 2021. 2. 15. 15:18

오랜만에 버추얼을 돌려봤는데 2 솔밖에 못했다.

바로 풀이를 쓰자면

A

import sys
input=sys.stdin.readline
t=int(input())
for _ in range(t):
    n=int(input())
    l=list(map(int,input().split()))
    r=[0]*200
    s=0
    for i in range(n):
        r[l[i]]+=1
        s=max(s,r[l[i]])
    print(s)

그냥 가장 많이 중복되는 개수를 출력하면 끝이다.

 

B

import sys
input=sys.stdin.readline
t=int(input())
def p(x):
    #print(x)
    if int(x)<int(d):return 0
    for i in range(len(x)):
        if x[i]==d:
            return 1
    return p(str(int(x)-int(d)))
for _ in range(t):
    q,d=map(int,input().split())
    d=str(d)
    l=list(input().strip().split())
    for i in range(q):
        if p(l[i]):
            print("YES")
        else:
            print("NO")

각 숫자들을 여러가지 수로 조합을 해야 되는데 그 수들에는 d가 한 개 이상은 들어가 있어야 된다.

그러므로 숫자에 d를 빼주면서 d가 들어있지 않다면 d를 빼고 다시 탐색을 해서 만들 수 있는지 없는지는 판별해주면 끝이다.

생각보다 많이 간단한데 이걸 21분 컷을 했다는 거에 대해 더 노력해야 된다고 생각이 든다.

댓글