[Codeforces] 1722C. Word Game [Round #817 (Div.4)]

yunh·2022년 8월 30일
0
post-thumbnail

📚 문제 : Word Game

📖 풀이

세 사람이 n개 만큼 중복되지 않는 3길이의 단어들을 적는다.

서로 중복되게 적었는지는 확인할 수 없고, 본인이 적는 단어들을 중복없이 적는 것이다.

그리고 확인한 결과 자신이 적은 단어가 다른 사람이 적지 않았으면 +3점

두 명이 서로 중복됐으면 +1점

세 명 다 같은 단어를 적었으면 0점이다.

따라서 딕셔너리를 활용해 단어를 key로 나온 횟수를 value로 적어준다.

그리고 한 명씩 확인하면서, 단어가 나온 횟수가 1이면 +3, 2이면 +1로 점수를 올려준다.

세 사람 다 구한 후 점수를 순서대로 출력한다.

📒 코드

t = int(input())
for _ in range(t):
    n = int(input())
    arr_a = list(input().split())
    arr_b = list(input().split())
    arr_c = list(input().split())
    dic = {}
    score = [0, 0, 0]
    for x in arr_a:
        dic[x] = dic.get(x, 0) + 1
    for x in arr_b:
        dic[x] = dic.get(x, 0) + 1
    for x in arr_c:
        dic[x] = dic.get(x, 0) + 1

    for x in arr_a:
        if dic[x] == 1:
            score[0] += 3
        elif dic[x] == 2:
            score[0] += 1
    for x in arr_b:
        if dic[x] == 1:
            score[1] += 3
        elif dic[x] == 2:
            score[1] += 1
    for x in arr_c:
        if dic[x] == 1:
            score[2] += 3
        elif dic[x] == 2:
            score[2] += 1

    print(*score)

🔍 결과

profile
passionate developer

0개의 댓글