알고리즘 공부/파이썬(Python)

백준 17413번 단어 뒤집기 2 파이썬

마달랭 2024. 7. 7. 00:48
반응형

리뷰

띄어쓰기에 대한 내용을 제대로 읽지 않아 두번 실패했다 ㅠㅠ

 

문제 풀이

  1. 문자열을 받아오고 슬라이싱 기준이 될 인덱스와 빈 리스트, 태그 여부를 나타낼 변수를 초기화 해준다.
  2. 문자열을 받아와 태그가 시작되면 이전까지의 문자를 리스트에 보내주고 인덱스 최신화, 태그를 True처리 해준다.
  3. 태그가 종료되면 태그 내의 내용을 리스트에 전달하고 인덱스 최신화, 태그를 False처리 해준다.
  4. 띄어쓰기를 만나면 띄어쓰기 + 현재까지의 문자열을 리스트에 전달해주고 인덱스를 최신화 해준다.
  5. for문이 끝나면 마지막으로 남은 문자열을 리스트에 전달해 준다.
  6. result를 빈 문자열로 초기화 해주고 리스트 내 요소들을 뒤집어 result에 추가해 준다.

 

참고 사항

  1. 태그가 시작되었을때 띄어쓰기가 확인되어도 리스트에 전달해 주면 안된다.
  2. 태그의 내용은 뒤집기를 하면 안된다.

 

정답 코드

def q17413():
    # 백준 17413번 단어 뒤집기 2 파이썬
    s = input()
    start = 0
    lst = []
    tag = False
    for i in range(len(s)):
        if s[i] == '<':
            lst.append(s[start:i])
            start = i
            tag = True
        if s[i] == '>':
            lst.append(s[start:i + 1])
            start = i + 1
            tag = False
        if s[i] == ' ' and tag == False:
            lst.append(' ' + s[start:i])
            start = i + 1
    lst.append(s[start:])
    result = ''
    for i in lst:
        if '<' in i:
            result += i
        else:
            result += i[::-1]
    print(result)
q17413()

 

 

728x90
반응형