[백준] 17413: 단어 뒤집기 (Python)

JiKwang Jeong·2021년 10월 12일
0
post-thumbnail
post-custom-banner

문제📖

풀이🙏

  • 입력값을 list형태로 저장한다.
  • list를 하나씩 확인하면서 <를 만나는 경우 >가 나올때까지 인덱스를 증가시켜 영향을 주지 않는다.
  • 숫자나 알파벳이 나오는 경우 숫자나 알파벳이 끝나는 인덱스를 알아내어 그 부분을 reverse시키고 list의 값을 수정한다.

코드💻

import sys
input = sys.stdin.readline

data = list(input().rstrip())
i = 0
start = 0

while i < len(data):
    # 괄호 부분은 그냥 인덱스를 증가시켜 영향 x
    if data[i] == "<":
        i += 1
        while data[i] != ">":
            i += 1
        i += 1 # 닫힌 괄호 만나면 인덱스 하나 증가 시켜 다음 가르킴
    # 숫자나 알파벳을 만나는 경우
    elif data[i].isalnum():
        start = i
        while i < len(data) and data[i].isalnum():
            i+=1
        # 숫자 알파벳 범위까지 뒤집는다.
        tmp = data[start:i]
        tmp.reverse()
        # 뒤집은 것으로 교체
        data[start:i] = tmp
    # 괄호도 알파벳 숫자도 아니면 증가 (공백)
    else:
        i += 1

print("".join(data))
        
        
profile
기억보다 기록, 난리보다 정리
post-custom-banner

0개의 댓글