문자 하나하나 탐색 처음에는 문자를 하나씩 탐색하면서 했었다. 하지만 이 방법은 시간초과가 나왔다.... ㅠㅠ 답은 제대로 출력이 되었지만 모든 문자를 탐색하기에 시간이 오래걸렸다.
flag를 설정하여 '<'이 나왔음을 인식하고 '<' 사이에 있는 문자는 결과 문자열에 그대로 쓴다.
flag가 false로 되어있는 즉, '<'와 '>' 사이에 있지 않는 경우는 stack에 담아두었다가 꺼내서 거꾸로 하는 방식이었다.
'<' 기준으로 나누기 ```
'<' 기준으로 나누어서 첫 문자가 '<' 인 경우 '<'를 쓰고 시작한다. 그리고 시작 인덱스를 1로한다.('<'로 시작하는 경우 split 했을 때 0번째 인덱스에 공백문자가 나옴)
그리고 나뉘어진 문자들의 '>'의 위치를 찾아서 '>'까지 문자를 그대로 붙인다.(태그 안의 문자들)
'>' 뒤에 문자가 남아있는 경우 이는 태그 사이의 문자 이므로 공백 기준 split하여 각각 뒤집어서 붙인다.
그리고 마지막이 아닌 경우 '<'를 붙여준다. 위의 과정을 반복하여 결과 문자인 result 문자열을 만들고 출력한다.
로직 설명 (2번 방법)
예를 들어 다음과 같은 글자를 2번 방법으로 거꾸로 뒤집어 출력해보자
<ab cd>fe hg<ij kl> 다음과 같은 글자가 있다
1. < 기준으로 나눈다. 그러면 다음과 같이 나뉜다
- ab cd>fe hg
- ij kl>
첫 문자가 '<'이므로 '<'를 출력한다.
2. '>'의 위치를 찾아 '>'까지 출력한다.
출력된 문자 : <ab cd>
3. '>'뒤의 문자는 공백 기준으로 나눈다
fe와 hg로 나뉘는데 이것을 각각 뒤집어서 출력한다.
출력된 문자: <ab cd>ef gh
4. 마지막이 아니므로 '<'를 출력한다.
출력된 문자: <ab cd>ef gh<
5. 반복한다. (2번 실행)
<ab cd>ef gh<ij kl>