17413. ๋‹จ์–ด ๋’ค์ง‘๊ธฐ2 (silver3)

# ์ž๋ฃŒ๊ตฌ์กฐ

๋ฌธ์ž์—ด S๊ฐ€ ์ฃผ์–ด์กŒ์„ ๋•Œ, ์ด ๋ฌธ์ž์—ด์—์„œ ๋‹จ์–ด๋งŒ ๋’ค์ง‘์œผ๋ ค๊ณ  ํ•œ๋‹ค.

๋จผ์ €, ๋ฌธ์ž์—ด S๋Š” ์•„๋ž˜์™€๊ณผ ๊ฐ™์€ ๊ทœ์น™์„ ์ง€ํ‚จ๋‹ค.

  1. ์•ŒํŒŒ๋ฒณ ์†Œ๋ฌธ์ž('a'-'z'), ์ˆซ์ž('0'-'9'), ๊ณต๋ฐฑ(' '), ํŠน์ˆ˜ ๋ฌธ์ž('<', '>')๋กœ๋งŒ ์ด๋ฃจ์–ด์ ธ ์žˆ๋‹ค.
  2. ๋ฌธ์ž์—ด์˜ ์‹œ์ž‘๊ณผ ๋์€ ๊ณต๋ฐฑ์ด ์•„๋‹ˆ๋‹ค.
  3. '<'์™€ '>'๊ฐ€ ๋ฌธ์ž์—ด์— ์žˆ๋Š” ๊ฒฝ์šฐ ๋ฒˆ๊ฐˆ์•„๊ฐ€๋ฉด์„œ ๋“ฑ์žฅํ•˜๋ฉฐ, '<'์ด ๋จผ์ € ๋“ฑ์žฅํ•œ๋‹ค. ๋˜, ๋‘ ๋ฌธ์ž์˜ ๊ฐœ์ˆ˜๋Š” ๊ฐ™๋‹ค.

ํƒœ๊ทธ๋Š” '<'๋กœ ์‹œ์ž‘ํ•ด์„œ '>'๋กœ ๋๋‚˜๋Š” ๊ธธ์ด๊ฐ€ 3 ์ด์ƒ์ธ ๋ถ€๋ถ„ ๋ฌธ์ž์—ด์ด๊ณ , '<'์™€ '>' ์‚ฌ์ด์—๋Š” ์•ŒํŒŒ๋ฒณ ์†Œ๋ฌธ์ž์™€ ๊ณต๋ฐฑ๋งŒ ์žˆ๋‹ค. ๋‹จ์–ด๋Š” ์•ŒํŒŒ๋ฒณ ์†Œ๋ฌธ์ž์™€ ์ˆซ์ž๋กœ ์ด๋ฃจ์–ด์ง„ ๋ถ€๋ถ„ ๋ฌธ์ž์—ด์ด๊ณ , ์—ฐ์†ํ•˜๋Š” ๋‘ ๋‹จ์–ด๋Š” ๊ณต๋ฐฑ ํ•˜๋‚˜๋กœ ๊ตฌ๋ถ„ํ•œ๋‹ค. ํƒœ๊ทธ๋Š” ๋‹จ์–ด๊ฐ€ ์•„๋‹ˆ๋ฉฐ, ํƒœ๊ทธ์™€ ๋‹จ์–ด ์‚ฌ์ด์—๋Š” ๊ณต๋ฐฑ์ด ์—†๋‹ค.

 

์ž…๋ ฅ

์ฒซ์งธ ์ค„์— ๋ฌธ์ž์—ด S๊ฐ€ ์ฃผ์–ด์ง„๋‹ค. S์˜ ๊ธธ์ด๋Š” 100,000 ์ดํ•˜์ด๋‹ค.

 

์ถœ๋ ฅ

์ฒซ์งธ ์ค„์— ๋ฌธ์ž์—ด S์˜ ๋‹จ์–ด๋ฅผ ๋’ค์ง‘์–ด์„œ ์ถœ๋ ฅํ•œ๋‹ค.

 

 

์˜ˆ์ œ ์ž…๋ ฅ 1

baekjoon online judge

์˜ˆ์ œ ์ถœ๋ ฅ 1

noojkeab enilno egduj

 

์˜ˆ์ œ ์ž…๋ ฅ 2

<open>tag<close>

์˜ˆ์ œ ์ถœ๋ ฅ 2

<open>gat<close>

 

์˜ˆ์ œ ์ž…๋ ฅ 3

<ab cd>ef gh<ij kl>

์˜ˆ์ œ ์ถœ๋ ฅ 3

<ab cd>fe hg<ij kl>

 

 

 

 

ํ’€์ด) 

 

  1. ์•ŒํŒŒ๋ฒณ ์†Œ๋ฌธ์ž('a'-'z'), ์ˆซ์ž('0'-'9'), ๊ณต๋ฐฑ(' '), ํŠน์ˆ˜ ๋ฌธ์ž('<', '>')๋กœ๋งŒ ์ด๋ฃจ์–ด์ ธ ์žˆ๋‹ค.
  2. ๋ฌธ์ž์—ด์˜ ์‹œ์ž‘๊ณผ ๋์€ ๊ณต๋ฐฑ์ด ์•„๋‹ˆ๋‹ค.
  3. '<'์™€ '>'๊ฐ€ ๋ฌธ์ž์—ด์— ์žˆ๋Š” ๊ฒฝ์šฐ ๋ฒˆ๊ฐˆ์•„๊ฐ€๋ฉด์„œ ๋“ฑ์žฅํ•˜๋ฉฐ, '<'์ด ๋จผ์ € ๋“ฑ์žฅํ•œ๋‹ค. ๋˜, ๋‘ ๋ฌธ์ž์˜ ๊ฐœ์ˆ˜๋Š” ๊ฐ™๋‹ค.

์ฃผ์–ด์ง„ ๊ทœ์น™์— ๋”ฐ๋ผ while๋ฌธ ์•ˆ์— ์ฝ”๋“œ๋ฅผ ์ž‘์„ฑํ•ด์ฃผ์—ˆ๋‹ค.

๋จผ์ € words๋ผ๋Š” ๋ฆฌ์ŠคํŠธ๋ฅผ ๋งŒ๋“ค๊ณ  ์ž…๋ ฅ์„ ๋ฐ›์•˜๋‹ค. ๊ทธ ๋‹ค์Œ while๋ฌธ์„ ์‚ฌ์šฉํ•ด์„œ words ๋ฆฌ์ŠคํŠธ์˜ ๊ธธ์ด๋งŒํผ ๋ฐ˜๋ณตํ•ด์ฃผ์—ˆ๋‹ค.

if๋ฌธ์„ ์‚ฌ์šฉํ•ด์„œ words ๋ฆฌ์ŠคํŠธ์˜ ์›์†Œ ์ค‘ ์—ด๋ฆฐ ๊ด„ํ˜ธ๋ฅผ ๋งŒ๋‚ฌ์„ ๋•Œ๋Š” ๋‹ซํžŒ ๊ด„ํ˜ธ๋ฅผ ๋งŒ๋‚˜๊ธฐ ์ „๊นŒ์ง€ ๋’ค์ง‘์ง€ ์•Š๊ณ  ์ง€๋‚˜๊ฐ€์•ผ ํ•˜๊ธฐ ๋•Œ๋ฌธ์— ์ธ๋ฑ์Šค์— ํ•ด๋‹นํ•˜๋Š” idx๋ฅผ ์ฆ๊ฐ€์‹œ์ผœ์ฃผ์—ˆ๋‹ค. ๋‹ซํžŒ ๊ด„ํ˜ธ๋ฅผ ๋งŒ๋‚ฌ์„ ๋•Œ๋„ ๋„˜์–ด๊ฐ€์•ผํ•˜๊ธฐ ๋•Œ๋ฌธ์— ์ธ๋ฑ์Šค(idx)๋ฅผ 1 ์ฆ๊ฐ€์‹œํ‚ค๊ณ , ๋‹ค์Œ ์›์†Œ์— ๋Œ€ํ•ด ๊ฒ€์‚ฌํ•˜๊ธฐ ์œ„ํ•ด ์ธ๋ฑ์Šค๋ฅผ ๋˜ 1 ์ฆ๊ฐ€์‹œ์ผœ์ฃผ์—ˆ๋‹ค.

elif๋ฌธ๊ณผ isalnum()ํ•จ์ˆ˜๋ฅผ ์‚ฌ์šฉํ•ด์„œ words ๋ฆฌ์ŠคํŠธ์˜ ์›์†Œ๊ฐ€ ์ˆซ์ž ๋˜๋Š” ์•ŒํŒŒ๋ฒณ์ผ ๋•Œ ๊ฒ€์‚ฌ๋ฅผ ํ•ด์ฃผ์—ˆ๋‹ค.

๊ฒ€์‚ฌํ•˜๋Š” ์ฒซ ๋ฒˆ์งธ ์›์†Œ์˜ ์ธ๋ฑ์Šค์— ํ•ด๋‹นํ•˜๋Š” start๋ฅผ ์ˆซ์ž/์•ŒํŒŒ๋ฒณ์„ ๋ฐœ๊ฒฌํ•œ ์ธ๋ฑ์Šค์ธ idx๋กœ ์ €์žฅํ•ด์ฃผ์—ˆ๊ณ , 

while๋ฌธ์„ ๋˜ ์‚ฌ์šฉํ•ด์„œ idx๊ฐ€ words ๋ฆฌ์ŠคํŠธ ๋ฒ”์œ„ ๋‚ด์ด๊ณ , ๋ฆฌ์ŠคํŠธ ์›์†Œ๊ฐ€ ์ˆซ์ž, ์•ŒํŒŒ๋ฒณ์ผ ๋•Œ idx์˜ ๊ฐ’์„ 1์”ฉ ์ฆ๊ฐ€์‹œ์ผœ์ฃผ์—ˆ๋‹ค.

temp๋ผ๋Š” ๋ณ€์ˆ˜๋ฅผ ์‚ฌ์šฉํ•ด์„œ start๋ถ€ํ„ฐ idx, ์ฆ‰ ์ˆซ์ž/์•ŒํŒŒ๋ฒณ์ธ ๋ฒ”์œ„์˜ ๋ถ€๋ถ„๋งŒ reverse()ํ•จ์ˆ˜๋ฅผ ์‚ฌ์šฉํ•ด์„œ ๋’ค์ง‘์–ด์ค€ ๊ฑธ ์ €์žฅํ•ด์ฃผ์—ˆ๋‹ค.

๊ทธ ๋‹ค์Œ temp ๋ณ€์ˆ˜์— ์ €์žฅ๋œ ๊ฐ’์„ ๋‹ค์‹œ words๋ฆฌ์ŠคํŠธ์— ์ €์žฅํ•ด์ฃผ์—ˆ๋‹ค.

๊ทธ ์™ธ์˜ ๊ฒฝ์šฐ์— ํ•ด๋‹นํ•˜๋Š” ๊ณต๋ฐฑ์˜ ๊ฒฝ์šฐ๋Š”, else๋ฌธ์„ ์‚ฌ์šฉํ•ด์„œ idx๋ฅผ 1 ์ฆ๊ฐ€์‹œ์ผœ์„œ ์ง€๋‚˜๊ฐ€๋„๋ก ์ฒ˜๋ฆฌํ•ด์ฃผ์—ˆ๋‹ค.

๋งˆ์ง€๋ง‰์œผ๋กœ while๋ฌธ ๋ฐ–์—์„œ words ๋ฆฌ์ŠคํŠธ๋ฅผ  join์„ ์‚ฌ์šฉํ•ด์„œ ์›์†Œ ๊ตฌ๋ถ„ ์—†์ด ์ถœ๋ ฅํ•ด์ฃผ๋ฉด ๋œ๋‹ค.

import sys
input = sys.stdin.readline

words = list(input().rstrip())

idx = 0
start = 0
while idx < len(words):
    if words[idx] == "<":           # ์—ด๋ฆฐ ๊ด„ํ˜ธ๋ฅผ ๋งŒ๋‚ฌ์„ ๋•Œ
        idx += 1 
        while words[idx] != ">":     # ๋‹ซํžŒ ๊ด„ํ˜ธ๋ฅผ ๋งŒ๋‚  ๋•Œ ๊นŒ์ง€
            idx += 1 
        idx += 1               
    elif words[idx].isalnum():  # ์ˆซ์ž/์•ŒํŒŒ๋ฒณ์ด ์žˆ์„ ๋•Œ
        start = idx             
        while (idx < len(words)) and (words[idx].isalnum()):
            idx += 1
        temp = words[start:idx]  # ํ•ด๋‹น ์ธ๋ฑ์Šค๊นŒ์ง€ ๋’ค์ง‘๊ธฐ
        temp.reverse()       
        words[start:idx] = temp  # ๋’ค์ง‘์€ ๊ฑธ ๋‹ค์‹œ ์ €์žฅํ•ด์คŒ
    else:                   # ๊ณต๋ฐฑ
        idx+=1                

print("".join(words))

 

'๋ฐฑ์ค€ > Python' ์นดํ…Œ๊ณ ๋ฆฌ์˜ ๋‹ค๋ฅธ ๊ธ€

[Python] ๋ฐฑ์ค€ 1935๋ฒˆ  (0) 2022.11.21
[Python] ๋ฐฑ์ค€ 2910๋ฒˆ  (0) 2022.11.20
[Python] ๋ฐฑ์ค€ 9375๋ฒˆ  (0) 2022.11.12
[Python] ๋ฐฑ์ค€ 11652๋ฒˆ  (0) 2022.11.12
[Python] ๋ฐฑ์ค€ 5568๋ฒˆ  (1) 2022.11.12
๋ณต์‚ฌํ–ˆ์Šต๋‹ˆ๋‹ค!