๋ณธ๋ฌธ ๋ฐ”๋กœ๊ฐ€๊ธฐ
์•Œ๊ณ ๋ฆฌ์ฆ˜ ๐Ÿ‘ฉ๐Ÿป‍๐Ÿ’ป/๋ฐฑ์ค€

[BAEKJOON] 17413 | ๋‹จ์–ด ๋’ค์ง‘๊ธฐ 2

by flowing1ife 2024. 11. 20.

๐Ÿ”Ž 17413 | ๋‹จ์–ด ๋’ค์ง‘๊ธฐ 2

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


๐Ÿ’ก Solution

Callout Box
โœ๐Ÿป
Logic
1. '<>' ์•ˆ์— ๋“ค์–ด ์žˆ๋Š” ๋ฌธ์ž๋ฅผ ์ œ์™ธํ•˜๊ณ  ๋„์–ด์“ฐ๊ธฐ๋ฅผ ๊ธฐ์ค€์œผ๋กœ ๋‹จ์–ด๋ฅผ ๋’ค์ง‘์–ด์•ผ ํ•œ๋‹ค.
2. ๋”ฐ๋ผ์„œ '<'๊ฐ€ ๋“ค์–ด์˜ค๋ฉด ์ง€๊ธˆ๊นŒ์ง€ ์Œ“์ธ word๋ฅผ ๋’ค์ง‘์–ด์„œ word_list์— pushํ•˜๊ณ  word๋ฅผ ์ดˆ๊ธฐํ™”ํ•œ๋‹ค. ๋˜ํ•œ, skip์ด๋ผ๋Š” ๋ณ€์ˆ˜๋ฅผ ๋‘ฌ์„œ ๊ด„ํ˜ธ๊ฐ€ ๋‹ซํž ๋•Œ๊นŒ์ง€ ์ •๋ฐฉํ–ฅ์œผ๋กœ word๋ฅผ ์Œ“๋Š”๋‹ค.
3. ์ดํ›„ '>'๊ฐ€ ๋“ค์–ด์˜ค๋ฉด ์ง€๊ธˆ๊นŒ์ง€ ์Œ“์€ word๋ฅผ word_list์— pushํ•˜๊ณ  skip ๋ณ€์ˆ˜์™€ word ๋ณ€์ˆ˜๋ฅผ ์ดˆ๊ธฐํ™” ํ•œ ๋’ค ๋‹ค์Œ ๋ฌธ์ž๋กœ ๋„˜์–ด๊ฐ„๋‹ค.
4. '<>'์— ํ•ด๋‹นํ•˜์ง€ ์•Š์„ ๊ฒฝ์šฐ, ๋„์–ด์“ฐ๊ธฐ๋ฅผ ๋งˆ์ฃผํ•˜๊ธฐ ์ „๊นŒ์ง€ word๋ฅผ ๋˜ ์Œ“๋Š”๋‹ค.
5. ๋„์–ด์“ฐ๊ธฐ๋ฅผ ๋งˆ์ฃผํ•˜๋ฉด, ์ง€๊ธˆ๊นŒ์ง€ ์Œ“์•„์˜จ word๋ฅผ ๋’ค์ง‘์–ด์„œ word_list์— pushํ•˜๊ณ  ๋„์–ด์“ฐ๊ธฐ๋„ push ํ•ด์ค€๋‹ค. ์ดํ›„ word ๋ณ€์ˆ˜๋ฅผ ์ดˆ๊ธฐํ™” ํ•ด์ค€ ๋’ค ๋„˜์–ด๊ฐ„๋‹ค.
6. ๋ฌธ์žฅ์˜ ๋์— ๋„๋‹ฌํ•˜๋ฉด ๋งˆ์ฐฌ๊ฐ€์ง€๋กœ ์ง€๊ธˆ๊นŒ์ง€ ์Œ“์•„์˜จ word๋ฅผ ๋’ค์ง‘์–ด์„œ word_list์— pushํ•œ๋‹ค.
sentence = input()
skip = 0
word = ''
word_list = []

for i in range(len(sentence)) :

    if sentence[i] == '<' :
        word_list.append(word[::-1])
        word = ''
        word += sentence[i]
        skip = 1
        continue
    
    if skip and sentence[i] == '>' :
        word += sentence[i]
        word_list.append(word)
        word = ''
        skip = 0
        continue
    
    if not skip :
        if sentence[i] == ' ' :
            word_list.append(word[::-1])
            word_list.append(' ')
            word = ''
            continue
        elif i == len(sentence) - 1 :
            word += sentence[i]
            word_list.append(word[::-1])
            continue
    
    
    word += sentence[i]

print(''.join(word_list))

Toggle Example
โ–ถ ๐Ÿ“Œ Note

โˆ™ ์„ค๋ช…
str1.find(substring, start, end)์„ ์‚ฌ์šฉํ•˜๋ฉด, <> ์ธ๋ฑ์Šค๋ฅผ ๋น ๋ฅด๊ฒŒ ์ฐพ์•„ ๊ฑด๋„ˆ๋›ฐ๋Š” ๊ณผ์ •์„ ์ตœ์ ํ™”ํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค.

๋˜ํ•œ, Python์˜ yield๋ฅผ ํ™œ์šฉํ•˜๋ฉด ์ƒํƒœ๋ฅผ ์œ ์ง€ํ•˜๋ฉด์„œ ์—ฌ๋Ÿฌ ๊ฐ’์„ ๋ฐ˜ํ™˜ํ•  ์ˆ˜ ์žˆ์–ด ํšจ์œจ์ ์ž…๋‹ˆ๋‹ค. ''.join() ํ•จ์ˆ˜๋Š” ๋ฐ˜๋ณต์ ์œผ๋กœ ์ œ๋„ˆ๋ ˆ์ดํ„ฐ๋ฅผ ํ˜ธ์ถœํ•˜์—ฌ ๊ฒฐ๊ณผ๋ฅผ ์—ฐ๊ฒฐํ•ฉ๋‹ˆ๋‹ค.

โ—‹ yield
- ๊ฐ’์„ ๋ฐ˜ํ™˜ํ•˜๋ฉด์„œ ํ•จ์ˆ˜์˜ ์ƒํƒœ๋ฅผ ์œ ์ง€ํ•จ
- ๋ฐ˜๋ณต(iteration)์„ ํ†ตํ•ด ์—ฌ๋Ÿฌ ๊ฐ’์„ ๋ฐ˜ํ™˜
- ํ•จ์ˆ˜ ํ˜ธ์ถœ ์‹œ ๋งค๋ฒˆ ์‹คํ–‰์„ ์ด์–ด์„œ ์ง„ํ–‰