꿈꾸는 개발자의 블로그
[백준] Python - 17413 단어 뒤집기2 본문
문제 링크
https://www.acmicpc.net/problem/17413
문제 풀이
- '<알파벳 소문자/공백>' 또는 '알파벳 소문자/숫자/공백'으로 이루어진 문자열을 찾아 words 변수에 담는다. (re.compile을 사용하여 정규 표현식을 컴파일)
- words를 순회하며 조건에 따라 result 변수에 이어 붙인다.
- 만약 '<'가 포함되어 있다면 그대로 이어 붙인다.
- '<'가 포함되어 있지 않고, ' '(공백)이 있다면 공백을 기준으로 단어를 잘라서 역순하여 이어 붙인다.
- '<'가 포함되어 있지 않고, ' '(공백)이 없다면 단어를 바로 역순하여 이어 붙인다.
전체 코드
import re
from sys import stdin
input = stdin.readline
str = input().strip()
p = re.compile('<[a-zA-Z0-9 ]+>|[a-zA-Z0-9 ]+')
words = p.findall(str)
result = ''
for word in words :
if word[0] == '<' :
result += word
else :
if ' ' in word :
s = word.split()
for i in range(len(s)) :
result += ''.join(reversed(s[i]))
if i != len(s)-1 : result += ' '
else :
result += ''.join(reversed(word))
print(result)
728x90
728x90
'Algorithm > Baekjoon' 카테고리의 다른 글
[백준] Python - 20437 문자열 게임 2 (0) | 2022.09.20 |
---|---|
[백준] Python - 1316 그룹 단어 체커 (0) | 2022.09.19 |
[백준] Python - 21920 서로소 평균 (0) | 2022.09.16 |
[백준] Python - 10816 숫자 카드 2 (0) | 2022.08.17 |
[백준] Python - 10989 수 정렬하기 3 (0) | 2022.08.08 |
Comments