목차

괄호의 값 비교

ps
링크acmicpc.net/…
출처BOJ
문제 번호22343
문제명괄호의 값 비교
레벨골드 2
분류

애드혹

시간복잡도O(n)
인풋사이즈n<=3,000,000
사용한 언어Python
제출기록76768KB / 1168ms
최고기록1168ms
해결날짜2022/02/24

풀이

코드

"""Solution code for "BOJ 22343. 괄호의 값 비교".

- Problem link: https://www.acmicpc.net/problem/22343
- Solution link: http://www.teferi.net/ps/problems/boj/22343
"""

import itertools


def calc_score(string, max_len):
    count = [0] * max_len
    d = 1
    for prev, cur in itertools.pairwise(string):
        if cur == '(':
            d += 1
        else:
            d -= 1
            if prev == '(':
                count[d] += 1
    for i, v in enumerate(count):
        if v > 1:
            q, r = divmod(v, 2)
            count[i + 1] += q
            count[i] = r
    return count[::-1]


def main():
    T = int(input())
    for _ in range(T):
        A = input()
        B = input()
        max_len = max(len(A), len(B)) // 2 + 1
        a_score = calc_score(A, max_len)
        b_score = calc_score(B, max_len)
        if a_score > b_score:
            print('>')
        elif a_score < b_score:
            print('<')
        else:
            print('=')


if __name__ == '__main__':
    main()