100일 dsa 코딩 챌린지의 70일차
Source: Dev.to

Introduction
새로운 도전에 도전합니다: 매일 GeeksforGeeks 오늘의 문제(POTD)를 풀고 해결책을 공유합니다! 💻🔥
목표는 문제 해결 능력을 갈고닦고, 코딩 실력을 향상시키며, 매일 새로운 것을 배우는 것입니다. 제 여정을 함께하세요! 🚀
Problem: Swap Diagonals
Difficulty: Easy | Accuracy: 85.42%
정사각형 행렬 mat[][]가 주어질 때, 주요 대각선과 부대각선의 원소를 교환하세요.
- 주요 대각선: 왼쪽 위 모서리에서 오른쪽 아래 모서리까지(행 인덱스와 열 인덱스가 같은 위치)의 원소들.
- 부대각선: 오른쪽 위 모서리에서 왼쪽 아래 모서리까지(
row + column = n - 1인 위치)의 원소들.
Examples
Example 1
Input:
mat[][] = [
[0, 1, 2],
[3, 4, 5],
[6, 7, 8]
]
Output:
[
[2, 1, 0],
[3, 4, 5],
[8, 7, 6]
]
Explanation:
주요 대각선 = [0, 4, 8]
부대각선 = [2, 4, 6]
같은 행에서 대각선 원소를 교환하면 주요 대각선이 부대각선이 되고 그 반대도 마찬가지입니다.
Example 2
Input:
mat[][] = [
[2, 3],
[5, 4]
]
Output:
[
[3, 2],
[4, 5]
]
Explanation:
주요 대각선 = [2, 4]
부대각선 = [3, 5]
교환 후, 두 대각선이 서로 바뀝니다.
Constraints
1 ≤ mat.size() ≤ 5001 ≤ mat[i][j] ≤ 10⁶
Solution
class Solution:
def swapDiagonal(self, mat):
n = len(mat)
for i in range(n):
# Swap the element on the major diagonal with the corresponding element on the minor diagonal
mat[i][i], mat[i][n - 1 - i] = mat[i][n - 1 - i], mat[i][i]
return mat