n = int(input())
for i in range(n):
parenthesis = input()
while True:
if not parenthesis:
print('YES')
break
elif '()' in parenthesis:
parenthesis.strip('()')
else:
print('NO')
break
n = int(input())
for i in range(n):
parenthesis = input()
while 2 <= len(parenthesis): #문자열의 길이가 2 이상일 때
#'()' 삭제를 반복
parenthesis = parenthesis.replace('()', '')
if not parenthesis: #문자열이 비어있을 때
print('YES')
else:
print('NO')
: 다시 보니까, while 문에서 무한반복이 이루어지는 듯..
n = int(input())
for i in range(n):
parenthesis = input()
while True: #반복 하려구
if '()' in parenthesis: #점차적으로 '()'을 삭제하도록
parenthesis = parenthesis.replace('()', '')
elif not parenthesis: #문자열이 비어있을 때
print('YES')
break
#문자열이 비어있지도 않고 '()'가 있지도 않을 때
else:
print('NO')
break
: 1번에서 왜 틀렸는지 알겠다..!
parenthesis.strip('()')
에서 strip은 '()'을 통채로 삭제하는게 아니라, '(', ')'을 삭제하는 것이었다..!
-> 얼라 근데 다른 예시를 넣어보니 아니네..?
strip
함수는 더 공부해보고, 당분간은 replace를 대신 사용하자!
: parenthesis.replace('()', '')
를 사용하니 깔끔!
-> parenthesis = parenthesis.replace('()', '')
로 수정하니까 성공!
replace 해서 문자열 제거한 걸 다시 문자열로 저장해야는데, 안 했으니 무한반복이 일어난 것..!
n = int(input())
for i in range(n):
parenthesis = input()
answer = True
while answer == True: #반복 하려구
if '()' in parenthesis: #점차적으로 '()'을 삭제하도록
parenthesis = parenthesis.replace('()', '')
elif not parenthesis: #문자열이 비어있을 때
print('YES')
answer = False
else:
print('NO')
break
answer = False
for i in range(int(input())):
parenthesis = input()
for j in range(20):
parenthesis = parenthesis.replace('()', '')
print('NO' if parenthesis else'YES')
: range(20)
은 뭘까? 오타일까? 왜 20이지?
for _ in[0] * int(input()):
parenthesis = input()
for z in parenthesis:
parenthesis = parenthesis.replace('()', '');
print(parenthesis and 'NO' or 'YES')
: ;
은 뭐지..? 파이썬에서도 세미콜론을 쓰는건가?!
exec(int(input())*("print('YNEOS'[''<input()"+".replace('()','')"*25+"::2]);"))
: 근데 1등 숏코딩들은 다 이해가 안간다;; 이렇게까지 짧게 해야하나..? 싶음..
for _ in '_' * int(input()):
parenthesis = input()
for _ in parenthesis:
parenthesis = parenthesis.replace('()', '')
print(['YES', 'NO'][parenthesis > ''])