100일 dsa 코딩 챌린지의 70일차

발행: (2025년 12월 13일 오후 01:39 GMT+9)
2 min read
원문: Dev.to

Source: Dev.to

100일 DSA 코딩 챌린지 70일 차 표지 이미지

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() ≤ 500
  • 1 ≤ 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
Back to Blog

관련 글

더 보기 »

Day 1/30 다시 DSA 챌린지

DSA - DSA에 대한 노트를 복습함. - hashmap과 complement 기법을 사용하여 Two Sum 문제를 해결함. - 각 요소를 저장하고 합을 확인하는 대신, st...

Advent of Code Day 7 풀이: 타키온 빔 분할

나는 원래 이 글을 내 블로그 https://canro91.github.io/2025/12/13/AoC7/에 올렸다. 올해는 Advent of Code를 따라가고 있다. 나는 스스로에게 “f...”를 쓰도록 도전했다.

팰린드롬 검사기

팔린드롬이란 무엇인가? 팔린드롬은 단어, 구절, 숫자 또는 기타 문자 시퀀스로, 공백, 구두점 및 대소문자를 무시하고 앞뒤가 동일하게 읽히는 것을 말한다.