백준 10799 - 쇠막대기


백준 10799 - 쇠막대기

1차 코드 (시간초과) O(n^2) 123456789101112131415161718192021222324252627282930313233from collections import defaultdictbkt = input()cut = []stick = []cnt = [0,0]bracket = [(bkt[0],0)]for i in range(1, len(bkt)): bracket.append((bkt[i], i)) if bkt[i] == ")" and bkt[i-1] == "(": cut.append([i-1,i])cnt = 1while bracket: if bracket[cnt][0] == ")" and bracket[cnt-1][0] == "(": tmp = [] tmp.append(bracket.pop(cnt)[1]) tmp.insert(0,bracket.pop(cnt-1)[1]) if tmp not in cut: stick.append(tmp) cnt = 0 cnt += 1 freq = defaultdict(int)for i in cut: for j in stick: if j[0] <= i[1] <= j[1]: freq[(j[0]..........



원문링크 : 백준 10799 - 쇠막대기