하루일문
[백준] 17413번 단어 뒤집기 2(파이썬) 본문
문제
17413번: 단어 뒤집기 2
문자열 S가 주어졌을 때, 이 문자열에서 단어만 뒤집으려고 한다. 먼저, 문자열 S는 아래와과 같은 규칙을 지킨다. 알파벳 소문자('a'-'z'), 숫자('0'-'9'), 공백(' '), 특수 문자('<', '>')로만 이루어져
www.acmicpc.net
코드
import sys
input = sys.stdin.readline
S = map(str, input())
s_li = []
i = ""
a = ""
space = " "
for s in S:
if s == "<":
i = s
if a:
s_li.append(a[::-1])
a = ""
elif s == ">":
i += s
s_li.append(i)
i = ""
elif i:
i += s
else:
if s == " " or s == "\n":
s_li.append(a[::-1])
s_li.append(space)
a = ""
else:
a += s
print(*s_li, sep="")
해설
후에 끝에 있는 문자를 넣어주기 위해서 \n이 필요해서 strip()을 일부로 안넣어줬다(즉, sys가 필수이다.)
<> 안에 문자들은 뒤집으면 안되고 띄어쓰기도 주위해야하기 때문에 <>안의 문자를 갈라서 list에 넣어주는 과정을 했다.
i는 <>문자들을 넣어주는 str이고 a는 그냥 str이라서 공백이나 \n나온다면 뒤집어서 리스트에 넣어주고, 구분을 해줄 공백을 리스트에 넣어줬다.
프린트 할 때 공백을 없애서 프린트 해줬다.
'algorithm > baekjoon' 카테고리의 다른 글
[백준] 10815 숫자카드(파이썬) (0) | 2023.03.08 |
---|---|
[백준] 10799 쇠막대기(파이썬) (1) | 2023.03.07 |
[백준] 1012번 유기농 배추(파이썬) (0) | 2023.03.05 |
[백준] 10866번 덱(파이썬) (1) | 2023.03.05 |
[백준] 1158 큐 (파이썬) (0) | 2023.03.04 |