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()