위지원의 데이터 일기 🐈
Home
  • 분류 전체보기 (563)
    • ✎ 2025년 (4)
    • 2024년 (16)
    • 2023년 (6)
    • 2022년 (35)
      • Developement (22)
      • Error (9)
    • 2021년 (68)
      • ERROR (9)
      • 알고리즘 (11)
      • 개발공부 (21)
      • Data (15)
      • 21.下 (12)
    • 2020년 (164)
      • 코테 (84)
      • Development (29)
      • 정처기 (41)
    • 2019년 (27)
    • 2018년 (89)
      • English Speaking (8)
      • Error (12)
      • C, Java, FileSystem (13)
      • DataBase (15)
      • Java (2)
      • 지식 (16)
      • Go (3)
      • spark (9)
      • 영어 (5)
      • 알고리즘 (6)
    • 2017년 (143)
      • Error (17)
      • machine learning (16)
      • Spark (20)
      • Database (19)
      • Python (17)
      • Spring (9)
      • etc. (10)
      • 백준 (5)
      • Google Platform (12)
      • web Development (7)
      • Docker (3)
      • Linux (8)
Home
  • 분류 전체보기 (563)
    • ✎ 2025년 (4)
    • 2024년 (16)
    • 2023년 (6)
    • 2022년 (35)
      • Developement (22)
      • Error (9)
    • 2021년 (68)
      • ERROR (9)
      • 알고리즘 (11)
      • 개발공부 (21)
      • Data (15)
      • 21.下 (12)
    • 2020년 (164)
      • 코테 (84)
      • Development (29)
      • 정처기 (41)
    • 2019년 (27)
    • 2018년 (89)
      • English Speaking (8)
      • Error (12)
      • C, Java, FileSystem (13)
      • DataBase (15)
      • Java (2)
      • 지식 (16)
      • Go (3)
      • spark (9)
      • 영어 (5)
      • 알고리즘 (6)
    • 2017년 (143)
      • Error (17)
      • machine learning (16)
      • Spark (20)
      • Database (19)
      • Python (17)
      • Spring (9)
      • etc. (10)
      • 백준 (5)
      • Google Platform (12)
      • web Development (7)
      • Docker (3)
      • Linux (8)
블로그 내 검색
포트폴리오

위지원의 데이터 일기 🐈

데이터를 사랑하고 궁금해하는 기록쟁이입니다! 😉 Super Data Girl이 되는 그날까지🏃‍♀️ 화이팅!

  • 🖥 깃블로그
  • 🌍 위키원
  • 📑 내맘대로 스크랩
  • 💌 메일
  • 2020년/코테

    [코테 연습] Sort the Matrix Diagonally

    2020. 9. 16. 16:16

    by. 위지원

    leetcode.com/problems/sort-the-matrix-diagonally/

     

    Sort the Matrix Diagonally - LeetCode

    Level up your coding skills and quickly land a job. This is the best place to expand your knowledge and get prepared for your next interview.

    leetcode.com

     

    Given a m * n matrix mat of integers, sort it diagonally in ascending order from the top-left to the bottom-right then return the sorted array.

     


    처음에는 그냥 무작정 대각선 방향으로 matrix를 탐색하려고했다.

    근데 또 이놈의 고질병인 index에서 자꾸 에러를 내서 결국 실패했다. 

     

    try catch를 이용해서 indexError가 뜨면 break하게 했으나, 정말 비효율적인 코드가 되었다.

    더군다나 열 기준으로 for문을 돌렸더니 직사각형에 맞지 않는 코드를 생성해냈다.

     

    물론.. 저렇게 대각선 탐색하는 분들이 분명 있을테지만 똥멍청이 위지원은 실패했다.

     

    결국 Discuss를 봤다.

     

    .

    .

    .

     

    딕셔너리?!!?!?!?! 딕셔너리라니 전혀 생각도 안했다. 

    딕셔너리라면 key value일텐데 .. 그럼 대각선을 찾는거니까 대장인 첫 index를 키로 두면 된다고 생각했다.

     

    얼마전에 본  Union-find가 생각났다. 부모를 저장하다.. 

    gmlwjd9405.github.io/2018/08/31/algorithm-union-find.html

     

    [알고리즘] Union-Find 알고리즘 - Heee's Development Blog

    Step by step goes a long way.

    gmlwjd9405.github.io

     

    matrix에는 규칙이 있었다.아래와 같이 row와 col을 빼면 (0,0) 기준 대각선 위 아래로 부모의 row 또는 col을 알 수 있었다.  그럼 아래와 같이 코드를 짜면 된다.

    - len(mat[0])만큼 양수의 키를 생성

    - len(mat)만큼 음수의 키를 생성

    - matrix를 모두 돌면서 dic[col-row].append(본인)

    - sort(key.values()) 

    - 다시 제자리에 넣어줌

     

     

     

    class Solution:
    def diagonalSort(self, mat: List[List[int]]) -> List[List[int]]:
    dic = {} # 부모 저장용 dic
    m, n = len(mat),len(mat[0])
    for i in range(-m+1, n): #양수,음수 key 생성
    dic[i] = []
    for row in range(m): #그림과 같이 탐색해서 부모를 찾아줌
    for col in range(n):
    dic[col-row].append(mat[row][col])
    for i in range(-m+1, n): #정렬
    dic[i] = sorted(dic[i])
    resmat = []
    for row in range(m): #정렬해서 저장한 부모에 있는 값을 하나씩 빼줌
    newmat=[]
    for col in range(n):
    newmat.append(dic[col-row].pop(0))
    resmat.append(newmat)
    return resmat
    view raw Sort the Matrix Diagonally.py hosted with ❤ by GitHub
    profile
    위지원

    데이터 엔지니어로 근무 중에 있으며 데이터와 관련된 일을 모두 좋아합니다!. 특히 ETL 부분에 관심이 가장 크며 데이터를 빛이나게 가공하는 일을 좋아한답니다 ✨

    저작자표시 (새창열림)

    '2020년 > 코테' 카테고리의 다른 글

    [코테 연습] Valid Parentheses  (0) 2020.09.24
    [코테 연습] All Elements in Two Binary Search Trees  (0) 2020.09.16
    [코테 연습] 구명 보트  (0) 2020.09.15
    [코테 연습] Length of Last Word  (0) 2020.09.15
    [코테 연습] House Robber  (0) 2020.09.15

    잠깐만요~! 읽으신김에 이런 글들은 어떠세요? 👀

    • [코테 연습] Valid Parentheses 2020.09.24
    • [코테 연습] All Elements in Two Binary Search Trees 2020.09.16
    • [코테 연습] 구명 보트 2020.09.15
    • [코테 연습] Length of Last Word 2020.09.15
    맨 위로
전체 글 보기
Tistory 로그인
Tistory 로그아웃
로그아웃 글쓰기 관리

열정! 열정! 열정! 🔥

Designed by Nana
블로그 이미지
위지원
데이터 엔지니어로 근무 중에 있으며 데이터와 관련된 일을 모두 좋아합니다!. 특히 ETL 부분에 관심이 가장 크며 데이터를 빛이나게 가공하는 일을 좋아한답니다 ✨

티스토리툴바

티스토리툴바

단축키

내 블로그

내 블로그 - 관리자 홈 전환
Q
Q
새 글 쓰기
W
W

블로그 게시글

글 수정 (권한 있는 경우)
E
E
댓글 영역으로 이동
C
C

모든 영역

이 페이지의 URL 복사
S
S
맨 위로 이동
T
T
티스토리 홈 이동
H
H
단축키 안내
Shift + /
⇧ + /

* 단축키는 한글/영문 대소문자로 이용 가능하며, 티스토리 기본 도메인에서만 동작합니다.