반응형
Notice
Recent Posts
Recent Comments
Link
관리 메뉴

짧은코딩

17413 단어 뒤집기2 본문

카테고리 없음

17413 단어 뒤집기2

5_hyun 2022. 3. 11. 00:05
반응형

https://www.acmicpc.net/problem/17413

 

17413번: 단어 뒤집기 2

문자열 S가 주어졌을 때, 이 문자열에서 단어만 뒤집으려고 한다. 먼저, 문자열 S는 아래와과 같은 규칙을 지킨다. 알파벳 소문자('a'-'z'), 숫자('0'-'9'), 공백(' '), 특수 문자('<', '>')로만 이루어져

www.acmicpc.net

 

내 풀이(맞음)

x = input()
ary = ''
rst = ''
for i in range(len(x)):
    if x[i] == '<':
        if ary != '':
            rst += ary[::-1]
            ary = ''
        ary += x[i]
    elif x[i] == ' ':
        if ary:
            if ary[0] == '<':
                ary += ' '
                continue
        rst += ary[::-1] + ' '
        ary = ''
    elif x[i] == '>':
        ary += x[i]
        rst += ary
        ary = ''
    else:
        ary += x[i]
if ary:
    rst += ary[::-1]
print(rst)

ary는 한 단어씩 저장하는 것이고 rst는 전체 문자열을 저장하는 것이다. x의 개수 만큼 for문을 돌린다. 첫번째 조건은 x[i]가 '<'인 경우 ary가 비어있지 않으면 rst에 ary를 뒤집어서 넣어주고 ary를 공백으로 만든다. 만약 ary가 비어있으면 ary에 x[i]를 추가해준다. 두번째 조건은 x[i]가 ' '이고 ary가 안비어있고 ary[0]이 '<'이면 ary에 ' '인 공백을 넣고 다음 반복문으로 넘어간다. 하지만 위 조건이 다 거짓이면 rst에 ary를 뒤집어서 넣고 공백 ' '도 추가해준다. 세번째 조건은 x[i]가 '>'이면 ary에 x[i]인 '>'를 넣고 rst에 ary를 넣은 다음 ary를 공백으로 해준다. 마지막으로 그 외에 조건에서는 ary에 x[i]를 추가한다. 그리고 반복문을 나오고 나서 ary가 있으면 뒤집어서 rst에 넣어준다.

반응형
Comments