본문 바로가기
🔅코딩테스트 공부🔅/❗백준

[백준] 17413번 단어 뒤집기2(python)

by 윤무무 2023. 4. 21.

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

 

17413번: 단어 뒤집기 2

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

www.acmicpc.net

 

1. 난이도 실버3

 

2. 내가 작성한 코드
answer = [] 
check = True #괄호가 열려있는지 확인
string = list(input())
local = ""

for i in range(len(string)):

    if string[i] == "<": #괄호가 열리면 check를 변경해줌
        local += string[i]
        check = False

    elif string[i] == ">": #괄호가 닫히면 answer에 local값을 넣어주고 true로 변경
        local += string[i]
        answer.append(local)
        local = ""
        check = True

    elif check and i != (len(string)-1): #괄호가 닫혀있고 괄호나 빈칸을 만나면 뒤집어서 넣기
        if string[i+1] in ("<"," "):
            local += string[i]
            answer.append(local[::-1])
            local = ""
        else:
            local += string[i]

    elif check and i == (len(string)-1): #마지막까지 다 돌면 answer에 뒤집어서 넣어주기
        local+=string[i]
        answer.append(local[::-1])

    else:
        local += string[i]

for i in range(len(answer)):
    answer[i] = answer[i].rstrip()

for i in range(len(answer)):
    if i != (len(answer)-1) and answer[i][0] != "<" and answer[i+1][0] != "<":
        print(answer[i],end=" ")
    else:
        print(answer[i],end="")

 

분기를 세상에서 젤 많이 만들었다 ㅋㅋ ㅠ

 

이 문제는 내 코드보다는 스택을 이용하거나 아래 링크를 참고해 더 쉽게 풀 수 있다.

 

나 자신... 문제 어렵게(+복잡하게) 풀기 대장인듯!

 

https://m.blog.naver.com/chanmuzi/222846128285

 

17413 : 단어 뒤집기 2 [구현](Python)

단어 뒤집기 2 문제 문자열 S가 주어졌을 때, 이 문자열에서 단어만 뒤집으려고 한다. 먼저, 문자열 S는 ...

blog.naver.com

 

 

댓글