import sys
global compressesion
compressesion = []
n = int(sys.stdin.readline())
user_input = []
for i in range(n):
user_input.append(sys.stdin.readline().split())
def compression_possible(data):
zero = []
one = []
zero_sample = ['0'*(len(data))]
one_sample = ['1'*(len(data))]
for i in range(len(data)):
zero.append(zero_sample)
one.append(one_sample)
if zero == data :
return 1
elif one == data :
return 2
else:
return False
def divide(data):
size = len(data) // 2
left_up_data = []
right_up_data = []
left_down_data = []
right_down_data = []
for i in range(size):
left_up_data.append([data[i][0][:size]])
right_up_data.append([data[i][0][size:]])
left_down_data.append([data[i+size][0][:size]])
right_down_data.append([data[i+size][0][size:]])
return left_up_data, right_up_data, left_down_data, right_down_data
def tree(data):
global compressesion
possible = compression_possible(data)
if possible:
compressesion.append(str(possible - 1))
return 0
else :
left_up_data = []
right_up_data = []
left_down_data = []
right_down_data = []
left_up_data, right_up_data, left_down_data, right_down_data = divide(data)
compressesion.append('(')
tree(left_up_data)
tree(right_up_data)
tree(left_down_data)
tree(right_down_data)
compressesion.append(')')
def compress(data):
possible = compression_possible(data)
if possible:
#possible = possible -1
compressesion.append(str(possible - 1))
else :
left_up_data = []
right_up_data = []
left_down_data = []
right_down_data = []
left_up_data, right_up_data, left_down_data, right_down_data = divide(data)
compressesion.append('(')
tree(left_up_data)
tree(right_up_data)
tree(left_down_data)
tree(right_down_data)
compressesion.append(')')
compress(user_input)
solving =''.join(compressesion)
print(solving)
개념은 다 맞았는데 모두 1일때나 0일때
print가 (0)이 아니라 0이 되어야 하는데 문제를 꼼꼼히 읽지 않았다.
게다가 print(solving) 라고 되어있어서 처음에는
if possible:
print('({})'.format(possible -1)
이렇게 해서 애초에 틀렸겠다.
지식인 expert 5000원 쿠폰 있길래 그거 써서 물어봤다.
매번 입력값 실제로 넣기 귀찮았는데
그거 해결하는 법이나 좀 구상 해봐야겠다.
프로그래머스 - 전화번호 목록 (0) | 2021.03.17 |
---|---|
프로그래머스 체육복 (0) | 2021.03.16 |
파이썬 2630번 (0) | 2020.10.30 |
백준 4949번 파이썬 (0) | 2020.10.22 |
백준 파이썬 1003번 (0) | 2020.09.10 |
댓글 영역