๋ฌธ์ œ ์ œ๋ชฉ

๐Ÿ“„ ๋ฌธ์ œ

โ–ฃ ์ž…๋ ฅ์„ค๋ช…
์ด 10๊ฐœ์˜ ์ค„์— ๊ฑธ์ณ ํ•œ ์ค„์— ํ•˜๋‚˜์”ฉ 10๊ฐœ์˜ ๊ตฌ๊ฐ„์ด ์ฃผ์–ด์ง„๋‹ค.
i๋ฒˆ์งธ ์ค„์—๋Š” i๋ฒˆ์งธ ๊ตฌ๊ฐ„์˜ ์‹œ ์ž‘ ์œ„์น˜ ai์™€ ๋ ์œ„์น˜ bi๊ฐ€ ์ฐจ๋ก€๋Œ€๋กœ ์ฃผ์–ด์ง„๋‹ค.
์ด๋•Œ ๋‘ ๊ฐ’์˜ ๋ฒ”์œ„๋Š” 1 ≤ ai ≤ bi ≤ 20์ด๋‹ค.

โ–ฃ ์ถœ๋ ฅ์„ค๋ช…
1๋ถ€ํ„ฐ 20๊นŒ์ง€ ์˜ค๋ฆ„์ฐจ์ˆœ์œผ๋กœ ๋†“์ธ ์นด๋“œ๋“ค์— ๋Œ€ํ•ด,
์ž…๋ ฅ์œผ๋กœ ์ฃผ์–ด์ง„ 10๊ฐœ์˜ ๊ตฌ๊ฐ„ ์ˆœ์„œ๋Œ€๋กœ ๋’ค์ง‘๋Š” ์ž‘์—…์„ ํ–ˆ์„ ๋•Œ ๋งˆ์ง€๋ง‰ ์นด๋“œ๋“ค์˜ ๋ฐฐ์น˜๋ฅผ ํ•œ ์ค„์— ์ถœ๋ ฅํ•œ๋‹ค.

โ–ฃ ์ž…๋ ฅ์˜ˆ์ œ
5 10
9 13
1 2
3 4
5 6
1 2
3 4
5 6
1 20
1 20

โ–ฃ ์ถœ๋ ฅ์˜ˆ์ œ
1 2 3 4 10 9 8 7 13 12 11 5 6 14 15 16 17 18 19 20

๐Ÿงž ํ’€์ด

๋”๋ณด๊ธฐ

ํ’€์ด

# ์ž…๋ ฅ: 10๊ฐœ์˜ ์ค„์— ๊ฑธ์ณ, ํ•œ ์ค„์— ํ•˜๋‚˜์”ฉ 10๊ฐœ์˜ ๊ตฌ๊ฐ„ ai, bi
# ์ถœ๋ ฅ: ๋งˆ์ง€๋ง‰ ์นด๋“œ๋“ค์˜ ๋ฐฐ์น˜๋ฅผ ํ•œ ์ค„์— ์ถœ๋ ฅ

# ์˜ˆ๋ฅผ ๋“ค์–ด, 5๋ถ€ํ„ฐ 10๊นŒ์ง€ ์Šฌ๋ผ์ด์‹ฑํ•ด์„œ ์—ญ์ˆœ์œผ๋กœ ๋งŒ๋“ค๋ ค๋ฉด
# card[10-1:5-2:-1]
# ์ฒซ ๋ฒˆ์งธ๋Š” ํฌํ•จํ•˜๊ธฐ ๋•Œ๋ฌธ์— ์ธ๋ฑ์Šค์˜ -1 ์ฐจ๋งŒ ๋นผ๋ฉด ๋จ
# ๋‘ ๋ฒˆ์งธ๋Š” ํฌํ•จํ•˜์ง€ ์•Š๊ธฐ ๋•Œ๋ฌธ์— ์ธ๋ฑ์Šค์˜ -1 ์ฐจ์™€ -1์„ ์ถ”๊ฐ€๋กœ ๋นผ์ค˜์•ผ ํ•จ

# ๊ทธ๋ฆฌ๊ณ  ์ถ”๊ฐ€๋กœ ๊ทธ ์•ž ๋’ค์— ์žˆ๋Š” ์ธ๋ฑ์Šค๋Š” ๊ทธ๋Œ€๋กœ ๊ฐ€์ง€๊ณ  ๊ฐ€๋ฉด ๋  ๊ฒƒ ๊ฐ™์Œ
# ๊ทธ๋ ‡๊ฒŒ ํ•ด์„œ ๋‹ค์‹œ ๋ฆฌ์ŠคํŠธ ์„ธ ๊ฐœ๋ฅผ ํ•ฉ์ณ์ฃผ๋ฉด ๋  ๊ฒƒ ๊ฐ™์Œ


card = '1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20'.split()

i = 0

while i < 10:
    i += 1
    a, b = map(int, input().split())
    if a >= 2: # a๊ฐ€ 2๋ณด๋‹ค ํฌ๊ฑฐ๋‚˜ ๊ฐ™์„ ๋•Œ,
        tmp = [card[:a-1], card[b-1:a-2:-1], card[b:]] # ์ž„์‹œ ๋ฆฌ์ŠคํŠธ์— ๋ฐ”๋€ ์ˆœ์„œ๋Œ€๋กœ ์ €์žฅ
        card = sum(tmp, []) # ์ดˆ๊ธฐ๊ฐ’์„ []๋กœ ์ค˜์„œ, ๋ฆฌ์ŠคํŠธ๋ผ๋ฆฌ ๋”ํ•˜๊ธฐ๊ฐ€ ๊ฐ€๋Šฅํ•˜๊ฒŒ ํ•จ
    else: # a๊ฐ€ 1์ผ ๋•Œ,
        tmp = [card[b-1::-1], card[b:]]
        card = sum(tmp, [])
else:
    print(*card, sep = ' ') # ๋ฆฌ์ŠคํŠธ ์••์ถ• ํ’€๊ณ , ๊ณต๋ฐฑ์œผ๋กœ ๊ตฌ๋ถ„ํ•ด์„œ ์ถœ๋ ฅ

 

๋‹ค๋ฅธ ์‚ฌ๋žŒ ํ’€์ด

a = list(range(21)) # ์ž๋™์œผ๋กœ 0๋ถ€ํ„ฐ 20๊นŒ์ง€ ๋ฆฌ์ŠคํŠธ๊ฐ€ ์ƒ๊น€
for _ in range(10): # i ๋Œ€์‹  _๋ฅผ ์ ๊ฒŒ ๋˜๋ฉด ๋ณ€์ˆ˜ ์—†์ด ๋ฒ”์œ„๋งŒํผ ๋ฐ˜๋ณตํ•˜๊ฒŒ ๋จ
    s, e = map(int, input().split())
    for i in range((e-s+1)//2):
        a[s+i], a[e-i] = a[e-i], a[s+i]

a.pop(0)

for x in a:
    print(x, end = ' ')

+ Recent posts