Notice
Recent Posts
Recent Comments
Link
«   2024/11   »
1 2
3 4 5 6 7 8 9
10 11 12 13 14 15 16
17 18 19 20 21 22 23
24 25 26 27 28 29 30
Archives
Today
Total
관리 메뉴

우주에서 글을 적어본다

99클럽 코테 스터디 1일차 TIL + 2차원 배열을 1차원 배열로 변환 본문

항해99 TIL

99클럽 코테 스터디 1일차 TIL + 2차원 배열을 1차원 배열로 변환

우주로 날아간 사람 2024. 7. 22. 23:36

  • 오늘 학습 키워드 및 문제
    • 프로그래머스 "n^2 배열 자르기" 문제를 풀었다.
    • 키워드는 "2차원 배열을 1차원 배열로 변환"
    • 다음과 같이 배열에 숫자를 집어넣어야 한다.

 

  • 파이썬 코드
def solution(n, left, right):
    answer = []
    
    for i in range(left, right + 1):
        row = i // n
        col = i % n
        
        answer.append(max(row, col) + 1)
    
    return answer
(0, 0) (0, 1) (0, 2)
(1, 0) (1, 1) (1, 2)
(2, 0) (2, 1) (2, 2)

n = 3일 때, 나오는 배열의 (i, j)을 준비한다.
행과 열 가운데 더 큰 값에 +1을 해주면 된다. (배열이 0부터 시작하므로)

  • 오늘의 회고
    - 처음에는 2차원 배열을 만들어야 겠다고 생각했으나, 그러지 않고 각 요소의 값을 직접 계산하는 방법을 써야 했다.
    - 각 행과 열의 최대값 중 더 큰 값이 해당 위치의 값이 된다. 즉 max(i, j)로 각 위치의 값을 채울 수 있다. 규칙을 빠르게 발견해야 하는 게 중요한 것 같다. 직접 손으로 배열을 그려 규칙을 찾아보자.
    - 따라서 for문을 두 번 돌리지 않고 left에서 right까지의 for문 한 번으로 문제를 해결할 수 있었다.
    - 이런 기본적인 내용들은 까먹지 말고 늘 머릿속에 담아 둬야겠다. 끝!