알고리즘 공부/백준

(Python)백준 코딩테스트 연습 - 럭키 세븐(28706)

HRuler 2023. 8. 17. 22:26

1. 문제

https://www.acmicpc.net/problem/28706

 

28706번: 럭키 세븐

각 테스트케이스마다 한 줄에 하나씩, $K$를 $7$의 배수로 만들 수 있다면 “LUCKY”, 불가능하다면 “UNLUCKY”를 출력하세요.

www.acmicpc.net

2. 풀이

# 백준 28706번 : 럭키 세븐
import sys
input = sys.stdin.readline

# t : 테스트 케이스 수
t = int(input())

testCase = []
for i in range(t):
    # n : 각 케이스의 턴 수
    n = int(input())
    
    dpSet = set([1])

    for j in range(n):
        op1, v1, op2, v2 = map(str, input().split())
        temp = set()
        for k in dpSet:
            if op1 == "*":
                temp.add((k * int(v1)) % 7)
            elif op1 == "+":
                temp.add((k + int(v1)) % 7)
            if op2 == "*":
                temp.add((k * int(v2)) % 7)
            elif op2 == "+":
                temp.add((k + int(v2)) % 7)
        dpSet = temp
    if 0 in dpSet:
        print("LUCKY")
    else:
        print("UNLUCKY")