์๊ณ ๋ฆฌ์ฆ ํ๋ค๋ณด๋ฉด ์ํ์ข์ฐ ์ฌ๋ฌ๋ฐฉํฅ ํน์ ์ด๋จ์๋ก ์์ ์ ์ํํด์ผ ํ๋ ๊ฒฝ์ฐ๊ฐ ์๋ค.
์ด๋ด ๋ ๊ฒฝ์ฐ์ ๋ฐ๋ผ ์์ ํ๊ธฐ ํธํ ํ ๋ฐฉํฅ(์ฃผ๋ก ์ง๊ด์ ์ด๋ฉฐ ์ฌ๋ผ์ด์ฑ์ ์ด์ฉํ๊ธฐ ํธํ ์ข -> ์ฐ๋ก ํ๋ค)์ ๋ํด์๋ง ์ฝ๋ ๋ฅผ ์์ฑํ๊ณ ๋๋จธ์ง ๋ฐฉํฅ์ ๋ฐฐ์ด์ ํ์ ์์ผ์ ์ ์ฉํ๋ ๋ฐฉ๋ฒ์ด ์๋ค.
์ด ๊ฒฝ์ฐ ์ฝ๋๊ฐ ํจ์ฌ ์งง์์ง๊ณ ๊น๋ํด์ง๋ฉฐ, ์๋ฌ๊ฐ ์ผ์ด๋ ์ผ์ด ์ ๋ค๋ ์ฅ์ ์ด ์์ง๋ง ๋ฐ๋๋ก ์๊ฐ ๋ณต์ก๋๊ฐ ๋์ด๋๊ณ ๊ฒฝ์ฐ์ ๋ฐ๋ผ ์์ธ ์ผ์ด์ค๋ก ์ธํด ์ค๋ต์ด ์ถ๋ ฅ๋๋ ๊ฒฝ์ฐ๋ ์์ผ๋ ์กฐ์ฌํด์ ์ ์ฉํด์ผ ํ ๊ฒ์ด๋ค.
์๋๋ฅผ ์ด์ค for๋ฌธ์ ๋๋ ๋ฐฉ๋ฒ์ด ์ ์(?)์ด์ง๋ง ์ค์ ๋ฌธ์ ํ ๋ ์ฐ๊ธฐ ํธํ๋ผ๊ณ ๊ฐ ๋ฐฉํฅ ๋ณ๋ก ํ ์ค์ฉ ํจ์ ํํ๋ก ์์ฑํ๋ค.
๋ง์ฝ ํ์ต์ด ๋ชฉ์ ์ด๋ผ๋ฉด for๋ฌธ์ผ๋ก ๊ฐ ๋ฐฉํฅ๋ณ๋ก + ์ ์น๋ฐฐ์ด๊น์ง ์ง์ ๊ตฌํํด๋ณด๋ ๊ฒ ์ถ์ฒ!!
N = 3
arr = [[1, 2, 3], [4, 5, 6], [7, 8, 9]]
# ์๊ณ ๋ฐฉํฅ์ผ๋ก ํ์
def rotate(d):
# 0๋
if d == 0:
return arr
# 90๋
elif d == 1:
return list(map(list, zip(*arr[::-1])))
# 180๋
elif d == 2:
return [[arr[N - r - 1][N - c - 1] for c in range(N)] for r in range(N)]
# 270๋
else:
return list(map(list, zip(*arr)))[::-1]
์๋๋ ์ดํด๋ฅผ ๋๊ธฐ ์ํ ์ถ๋ ฅ ์์์ด๋ค.
for d in range(4):
print(d)
for row in rotate(d):
print(*row)
print()
'''
0
1 2 3
4 5 6
7 8 9
1
7 4 1
8 5 2
9 6 3
2
9 8 7
6 5 4
3 2 1
3
3 6 9
2 5 8
1 4 7
'''
๋๊ธ