Algorithm Problem/Python

[python] ๋ฐฑ์ค€ - 5430. AC

deo2kim 2020. 10. 18. 08:47
๋ฐ˜์‘ํ˜•

๐Ÿค”๋ฌธ์ œ ํ•ด๊ฒฐ

  • S2 | ์ž๋ฃŒ๊ตฌ์กฐ, ๋ฐํฌ, ๊ตฌํ˜„

๋ฆฌ๋ฒ„์Šค์™€ ์ œ๊ฑฐ ๋‘๊ฐ€์ง€ ์˜ค๋”๊ฐ€ ์žˆ๋‹ค.

๋ฆฌ๋ฒ„์Šค๋ฅผ ํ•˜๊ฒŒ ๋˜๋ฉด O(N)์˜ ์‹œ๊ฐ„๋ณต์žก๋„ ๋ฐœ์ƒ

๊ทธ๋Ÿฌ๋ฏ€๋กœ ๋ฆฌ๋ฒ„์Šค๋ฅผ ํ•˜์ง€๋ง๊ณ  ์ด๊ฒŒ ๋’ค์ง‘ํžŒ ์ƒํ™ฉ์ธ์ง€ ์•„๋‹Œ์ง€๋งŒ ๊ตฌ๋ถ„ํ•ด์ค€๋‹ค.

๊ทธ ํ›„ ๊ทธ๋Œ€๋กœ์ด๋ฉด ๋งจ ์•ž์˜ ์ˆซ์ž๋ฅผ ์ œ๊ฑฐํ•˜๊ณ 

๋’ค์ง‘ํžŒ ์ƒํ™ฉ์ด๋ฉด ๋งจ ๋’ค์˜ ์ˆซ์ž๋ฅผ ์ œ๊ฑฐํ•œ๋‹ค.

 

 

๐Ÿ’ป์†Œ์Šค ์ฝ”๋“œ

from collections import deque

for tc in range(int(input())):
    # RR์ด๋ฉด ์›๋ž˜์ƒํƒœ์ด๋ฏ€๋กœ ์ œ๊ฑฐํ•ด์คŒ
    order = input().replace('RR', '')

    n = int(input())
    number = input()[1:-1]
    if number:
        number = deque(list(map(int, number.split(','))))

    # R์€ ๋’ค์ง‘์ง€ ๋ง๊ณ 
    my_reverse = False
    for o in order:
        if o == 'R':
            my_reverse = not my_reverse
        elif o == 'D':
            if number:
                if my_reverse:
                    number.pop()
                else:
                    number.popleft()
            else:
                print('error')
                break
    else:
        number = list(number)
        if my_reverse:
            number = number[::-1]

        print(f'[{",".join(list(map(str, number)))}]')

 

๐Ÿ“•๋ฌธ์ œ ํ™•์ธ

์ถœ์ฒ˜: BACKJOON ONLINE JUDGE

๋งํฌ: https://www.acmicpc.net/problem/5430

 

5430๋ฒˆ: AC

๊ฐ ํ…Œ์ŠคํŠธ ์ผ€์ด์Šค์— ๋Œ€ํ•ด์„œ, ์ž…๋ ฅ์œผ๋กœ ์ฃผ์–ด์ง„ ์ •์ˆ˜ ๋ฐฐ์—ด์— ํ•จ์ˆ˜๋ฅผ ์ˆ˜ํ–‰ํ•œ ๊ฒฐ๊ณผ๋ฅผ ์ถœ๋ ฅํ•œ๋‹ค. ๋งŒ์•ฝ, ์—๋Ÿฌ๊ฐ€ ๋ฐœ์ƒํ•œ ๊ฒฝ์šฐ์—๋Š” error๋ฅผ ์ถœ๋ ฅํ•œ๋‹ค.

www.acmicpc.net

 

๋ฐ˜์‘ํ˜•