반응형
리뷰
띄어쓰기에 대한 내용을 제대로 읽지 않아 두번 실패했다 ㅠㅠ
문제 풀이
- 문자열을 받아오고 슬라이싱 기준이 될 인덱스와 빈 리스트, 태그 여부를 나타낼 변수를 초기화 해준다.
- 문자열을 받아와 태그가 시작되면 이전까지의 문자를 리스트에 보내주고 인덱스 최신화, 태그를 True처리 해준다.
- 태그가 종료되면 태그 내의 내용을 리스트에 전달하고 인덱스 최신화, 태그를 False처리 해준다.
- 띄어쓰기를 만나면 띄어쓰기 + 현재까지의 문자열을 리스트에 전달해주고 인덱스를 최신화 해준다.
- for문이 끝나면 마지막으로 남은 문자열을 리스트에 전달해 준다.
- result를 빈 문자열로 초기화 해주고 리스트 내 요소들을 뒤집어 result에 추가해 준다.
참고 사항
- 태그가 시작되었을때 띄어쓰기가 확인되어도 리스트에 전달해 주면 안된다.
- 태그의 내용은 뒤집기를 하면 안된다.
정답 코드
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
반응형
'알고리즘 공부 > 파이썬(Python)' 카테고리의 다른 글
백준 10799번 쇠막대기 파이썬 (0) | 2024.07.07 |
---|---|
백준 1550번 16진수 파이썬 (0) | 2024.07.07 |
백준 2167번 2차원 배열의 합 파이썬 (0) | 2024.07.07 |
백준 2455번 지능형 기차 파이썬 (0) | 2024.07.06 |
백준 2744번 대소문자 바꾸기 파이썬 (0) | 2024.07.06 |