๐ ๋ฌธ์
๋ํ์ด๋ ๋ฐ๊ตฌ๋๋ฅผ ์ด N๊ฐ ๊ฐ์ง๊ณ ์๊ณ , ๊ฐ๊ฐ์ ๋ฐ๊ตฌ๋์๋ 1๋ฒ๋ถํฐ N๋ฒ๊น์ง ๋ฒํธ๊ฐ ์์๋๋ก ์ ํ์ ธ ์๋ค. ๋ฐ๊ตฌ๋๋ ์ผ๋ ฌ๋ก ๋์ฌ์ ธ ์๊ณ , ๊ฐ์ฅ ์ผ์ชฝ ๋ฐ๊ตฌ๋๋ฅผ 1๋ฒ์งธ ๋ฐ๊ตฌ๋, ๊ทธ ๋ค์ ๋ฐ๊ตฌ๋๋ฅผ 2๋ฒ์งธ ๋ฐ๊ตฌ๋, ..., ๊ฐ์ฅ ์ค๋ฅธ์ชฝ ๋ฐ๊ตฌ๋๋ฅผ N๋ฒ์งธ ๋ฐ๊ตฌ๋๋ผ๊ณ ๋ถ๋ฅธ๋ค.
๋ํ์ด๋ ์์ผ๋ก M๋ฒ ๋ฐ๊ตฌ๋์ ์์๋ฅผ ํ์ ์ํค๋ ค๊ณ ๋ง๋ค๋ ค๊ณ ํ๋ค. ๋ํ์ด๋ ๋ฐ๊ตฌ๋์ ์์๋ฅผ ํ์ ์ํฌ ๋, ์์๋ฅผ ํ์ ์ํฌ ๋ฒ์๋ฅผ ์ ํ๊ณ , ๊ทธ ๋ฒ์ ์์์ ๊ธฐ์ค์ด ๋ ๋ฐ๊ตฌ๋๋ฅผ ์ ํํ๋ค. ๋ํ์ด๊ฐ ์ ํํ ๋ฐ๊ตฌ๋์ ๋ฒ์๊ฐ begin, end์ด๊ณ , ๊ธฐ์ค์ด ๋๋ ๋ฐ๊ตฌ๋๋ฅผ mid๋ผ๊ณ ํ์ ๋, begin, begin+1, ..., mid-1, mid, mid+1, ..., end-1, end ์์๋ก ๋์ด์๋ ๋ฐ๊ตฌ๋์ ์์๋ฅผ mid, mid+1, ..., end-1, end, begin, begin+1, ..., mid-1๋ก ๋ฐ๊พธ๊ฒ ๋๋ค.
๋ฐ๊ตฌ๋์ ์์๋ฅผ ์ด๋ป๊ฒ ํ์ ์ํฌ์ง ์ฃผ์ด์ก์ ๋, M๋ฒ ๋ฐ๊ตฌ๋์ ์์๋ฅผ ํ์ ์ํจ ๋ค์, ๋ฐ๊ตฌ๋์ ์ ํ์๋ ๋ฒํธ๋ฅผ ๊ฐ์ฅ ์ผ์ชฝ ๋ฐ๊ตฌ๋๋ถํฐ ์ถ๋ ฅํ๋ ํ๋ก๊ทธ๋จ์ ์์ฑํ์์ค.
๐ ์ ๋ ฅ
์ฒซ์งธ ์ค์ N (1 ≤ N ≤ 100)๊ณผ M (1 ≤ M ≤ 100)์ด ์ฃผ์ด์ง๋ค.
๋์งธ ์ค๋ถํฐ M๊ฐ์ ์ค์๋ ๋ฐ๊ตฌ๋์ ์์๋ฅผ ๋ฐ๊พธ๋ ๋ง๋๋ ๋ฐฉ๋ฒ์ด ์ฃผ์ด์ง๋ค. ๋ฐฉ๋ฒ์ i, j, k๋ก ๋ํ๋ด๊ณ , ์ผ์ชฝ์ผ๋ก๋ถํฐ i๋ฒ์งธ ๋ฐ๊ตฌ๋๋ถํฐ j๋ฒ์งธ ๋ฐ๊ตฌ๋์ ์์๋ฅผ ํ์ ์ํค๋๋ฐ, ๊ทธ ๋ ๊ธฐ์ค ๋ฐ๊ตฌ๋๋ k๋ฒ์งธ ๋ฐ๊ตฌ๋๋ผ๋ ๋ป์ด๋ค. (1 ≤ i ≤ k ≤ j ≤ N)
๋ํ์ด๋ ์ ๋ ฅ์ผ๋ก ์ฃผ์ด์ง ์์๋๋ก ๋ฐ๊ตฌ๋์ ์์๋ฅผ ํ์ ์ํจ๋ค.
๐ ์ถ๋ ฅ
๋ชจ๋ ์์๋ฅผ ํ์ ์ํจ ๋ค์์, ๊ฐ์ฅ ์ผ์ชฝ์ ์๋ ๋ฐ๊ตฌ๋๋ถํฐ ๋ฐ๊ตฌ๋์ ์ ํ์๋ ์์๋ฅผ ๊ณต๋ฐฑ์ผ๋ก ๊ตฌ๋ถํด ์ถ๋ ฅํ๋ค.
์์ ์ ๋ ฅ
10 5
1 6 4
3 9 8
2 10 5
1 3 3
2 6 2
์์ฒด ์ถ๋ ฅ
1 4 6 2 3 7 10 5 8 9
๐ ๋ด ์ฝ๋
# 10812_๋ฐ๊ตฌ๋ ์์ ๋ฐ๊พธ๊ธฐ.Python
# Algorithm
# Created by ์ก์ง์ธ on 2023/05/11
N, M = map(int, input().split()) #N : ๋ฐ๊ตฌ๋ ๊ฐ์, M : ํ์ ์
N_list = [i for i in range(1, N+1)]
for num in range(M):
begin, end, mid = map(int, input().split())
temp = N_list[mid-1: end] + N_list[begin-1: mid-1]
N_list = N_list[:begin-1] + temp + N_list[end:]
print(*N_list)
๐ก ํ์ด
์ ๋๋ฌด ํท๊ฐ๋ ค์ ํ๋ค์๋ค,,,
์ด๋ ต์ง๋ ์์๋ฐ ์ด ๋ฐฉ๋ฒ ์๊ฐํด๋ด๋๊ฒ ์ด๋ ค์ด ๋ฏ.
์ฒ์์ ๋ฐ๋ก ์๊ฐ ์๋์ ๋ธ๋ก๊ทธ ์ฐธ๊ณ ํด์ ํํธ ์ป๊ณ ์งํํ ๋ฌธ์ .
temp ์์ <mid๋ถํฐ end ๋ฐ๊ตฌ๋> + <begin๋ถํฐ mid-1> ๊น์ง ์ ์ฅ. -> ์ด๊ฒ ์ต์ข ๋ฐ๋ณตํด์ ๋์์ ๋ ๋ฐฐ์ด์ด๋ฏ๋ก.
๊ทธ๋ฆฌ๊ณ ๋ฐ๋ณต์ ์ ๋ค์ด๊ฐ๋ ์, ๋ค ๋ฐฐ์ด ์ถ๊ฐํด์ฃผ๋ฉด ์ต์ข ๋ฐฐ์ด ์์ฑ!!
์์ด๋์ด ์ฐธ๊ณ ํด์ ์์ผ๋ก ํ์ฉํด๋ณด์!
๐ฎ ๋ค๋ฅธ ์ฌ๋ ํ์ด