해당 문제는 <>내부에 있는 내용은 그대로 출력하고 그 외에 있는 것들은 띄어쓰기를 기준으로 각 단어들만 뒤집어 출력하는 형태로 진행했다. 이를 위해서 처음 while문을 통해 <> 사이에 있는 내용과 아닌 것들을 분리하고 이를 리스트에 단어별로 저장했다.
그 후 단어의 시작이 '<'인지 아닌지 확인하고 아니라면 이를 하나의 단어로 가져와 띄어쓰기를 기준으로 또다시 구분한 후 이를 뒤집은 후 띄어쓰기를 기준으로 더해주어 다시 원 배열에 넣어주는 형태로 코드를 구현했다.
반복문 특히 while문을 많이 사용해 시간 초과가 뜰 것 같았지만 오히려 for문을 사용했을 때 보다 i +=1 을 활용해 전체를 빠르게 훑을 수 있어서 통과 된 것 같다.
s = input()
i = 0
ans_lst =[]
while i < len(s):
st = ''
lst = []
if s[i] == '<':
lst.append(s[i])
i += 1
while i < len(s):
if s[i] == '>':
lst.append(s[i])
i += 1
break
else:
lst.append(s[i])
i += 1
for j in lst:
st += j
ans_lst.append(st)
else:
lst.append(s[i])
i += 1
while i < len(s):
if s[i] == '<':
for j in lst:
st += j
ans_lst.append(st)
break
else:
lst.append(s[i])
i += 1
if i == len(s) - 1:
lst.append(s[i])
for j in lst:
st += j
ans_lst.append(st)
break
ans_lst2 =[]
for i, s in enumerate(ans_lst):
if s[0] =='<':
continue
else:
lst = s.split()
w = ''
for j, word in enumerate(lst):
lst_word = []
for q in word:
lst_word.insert(0,q)
for q in lst_word:
w += q
if j < len(lst)-1:
w += ' '
ans_lst[i] = w
for i in ans_lst:
print(i,end='')