
🙆♂️문제

🙋♂️풀이
🚀 입력받기
string = list(input())
일단 입력된 문자열을 문자 단위 리스트 형식으로 저장합니다.
🚀 문제 풀이 핵심
readyOutput = []
temp=[]
br=0
for i,v in enumerate(string):
if i == len(string)-1:
if br != 1:
temp.append(v)
temp.reverse()
readyOutput.append(temp)
temp=[]
if v == '<':
if len(temp) != 0:
temp.reverse()
readyOutput.append(temp)
temp = ['<']
br=1
continue
if br==1:
if v == '>':
temp.append('>')
readyOutput.append(temp)
temp=[]
br=0
else:
temp.append(v)
else:
if v == ' ':
temp.reverse()
temp.append(' ')
readyOutput.append(temp)
temp=[]
else:
temp.append(v)
핵심 문제 풀이 코드입니다.
먼저 readyOutput 리스트는 최종적으로 출력하기 위한 값을 저장하는 리스트고
temp리스트는 중간중간 문자들을 묶어서 단어로 만드는 리스트입니다.
br값은 괄호가 열린상태인지 닫힌상태인지 나타내는 변수입니다.
1일 때 괄호가 열린 것이고 0이면 닫힌 것입니다. 코드를 자세히 보면
if i == len(string)-1:
if br != 1:
temp.append(v)
temp.reverse()
readyOutput.append(temp)
temp=[]
가장 위에 마지막 값에 대한 부분을 작성해줍니다. 제일 밑에 적으면 위에서 이미 다 처리됐는데 중복 처리가 되기 때문에 가장 위에 작성했습니다.
temp에 리스트 값을 추가하고 마지막이기 때문에 마지막 단어 리스트를 역전시키고 readyOutput에 추가하는 모습입니다.
if v == '<':
if len(temp) != 0:
temp.reverse()
readyOutput.append(temp)
temp = ['<']
br=1
continue
괄호가 열리는 입력을 받은 순간입니다.
먼저 이전 temp값이 있는지 확인을 하고 있다면 역전 시키고 출력 리스트에 저장을 한 후
temp 리스트를 < 로 초기화 시켜 괄호 단어 입력을 받습니다. 그리고 br값을 1로 만듭니다.
if br==1:
if v == '>':
temp.append('>')
readyOutput.append(temp)
temp=[]
br=0
else:
temp.append(v)
br값이 1인 경우 즉 괄호 단어를 입력받는 중인 경우에 괄호가 닫히는 >를 입력받게 되면 역전시키지 않고
출력 리스트에 추가한 후 temp 리스트를 초기화하는 모습입니다.
>를 입력 받는 경우가 아니라면 값을 temp리스트에 추가합니다.
else:
if v == ' ':
temp.reverse()
temp.append(' ')
readyOutput.append(temp)
temp=[]
else:
temp.append(v)
이 경우는 br값이 0인 경우 즉 일반적인 단어를 입력받는 경우인데 일반적인 단어들은 공백으로 구분되기 때문에 공백이 입력된다면 역전시켜준 후에 공백을 추가하고 출력 리스트에 append합니다.
그렇지 않은 경우 역시 temp 리스트에 값을 추가합니다.
🚀 출력하기
for i in readyOutput:
a = "".join(s for s in i)
print(a,end="")
출력 리스트에 있는 값들을 반복문 돌려서 출력을 합니다.
a값에 join을 사용하여 리스트 값을 문자열로 변경후 그대로 출력하면 끝입니다.
