์•Œ๊ณ ๋ฆฌ์ฆ˜๐Ÿฅš/๊ฐœ๋…

[๊ตฌํ˜„] ๋นˆ์ถœ) ๋ฐฐ์—ด ํšŒ์ „ํ•˜๊ธฐ

๐Ÿช„ํ•˜๋ฃจ๐Ÿช„ 2024. 10. 16. 21:20
728x90

๋‹ค์Œ์€ ๋ฐฐ์—ด์„ ์˜ค๋ฅธ์ชฝ 90๋„ ํšŒ์ „์‹œํ‚จ ์ฝ”๋“œ์ด๋‹ค.

 

๋ฐฉ๋ฒ•1. depth+(์ƒํ•˜์ขŒ์šฐ 4๊ฐ€์ง€๋กœ ๊ตฌ๋ถ„)

ํ•ด๋‹น ์ฝ”๋“œ๋Š” ๋ฐฐ์—ด์€ 4๊ฐœ๋กœ ๋‚˜๋ˆ„๊ณ  depth๋ฅผ ์ด์šฉํ•˜์—ฌ ์ฝ”๋“œ๋ฅผ ๊ตฌํ˜„ํ•œ ๊ฒƒ์ด๋‹ค.

def rotate_right(matrix, len_key):
    depth=len(matrix)//2
    rotate_matrix=[[0]*len(matrix) for _ in range(len(matrix))]
    for row in range(0, depth+1):
        for col in range(row, row+(len_key-1)-2*row):
            rotate_matrix[col][len_key-1-row]=matrix[row][col]#๋ถ
            rotate_matrix[len_key-1-row][len_key-1-col]=matrix[col][len_key-1-row]#๋™
            rotate_matrix[len_key-1-col][len_key-1-(len_key-1-row)]=matrix[len_key-1-row][len_key-1-col]#๋‚จ
            rotate_matrix[row][len_key-1-(len_key-1-col)]=matrix[len_key-1-col][row]#์„œ
    if len(matrix)%2==1:
        rotate_matrix[depth][depth]=matrix[depth][depth]
    return rotate_matrix

์ฝ”๋“œ๋ฅผ ์‚ดํŽด๋ณด๋ฉด ๊ธฐ์กด์˜ col→row๋กœ, row→len_key-1-row๋กœ ๋ฐ”๋€ ๊ฒƒ์„ ๋ณผ ์ˆ˜ ์žˆ๋‹ค.

์ด๋ฅผ ์ผ๊ด„ ํ‘œ์‹œํ•˜๋ฉด ๋‹ค์Œ๊ณผ ๊ฐ™๋‹ค.

 

๋ฐฉ๋ฒ•2. ๊ธธ์ด๊ฐ€ ๊ฐ™๊ฑฐ๋‚˜ ๋‹ค๋ฅด๊ฑฐ๋‚˜ ์ƒ๊ด€์—†์ด ๋ฐฐ์—ด ์˜ค๋ฅธ์ชฝ 90๋„ ํšŒ์ „

def rotate_right(matrix, len_key):
    depth=len(matrix)//2
    rotate_matrix=[[0]*len(matrix) for _ in range(len(matrix))]
    for row in range(ํ–‰ ๊ธธ์ด):
    	for col in range(์—ด ๊ธธ์ด):
            rotate_matrix[col][ํ–‰๊ธธ์ด-1-row]=matrix[row][col]
    return rotate_matrix
728x90