n^2 배열 자르기

송용진·2025년 4월 6일
0

알고리즘과 자료구조

목록 보기
187/190

https://school.programmers.co.kr/learn/courses/30/lessons/87390

def solution(n, left, right):
    result = []
    
    for index in range(left, right + 1):
        # 행과 열을 계산
        row = index // n + 1 # 1차원 배열에서 특정 인덱스에 해당하는 2차원 배열의 행 번호를 계산
        col = index % n + 1
        # max(row, col) 값을 결과에 추가
        result.append(max(row, col))
    
    return result

주어진 left와 right 구간에 대해
필요한 값만 계산하여 반환하는 방식으로 최적화

n = 3일 때
인덱스 0, 1, 2는 1행 (행 번호 1)
인덱스 3, 4, 5는 2행 (행 번호 2)
인덱스 6, 7, 8은 3행 (행 번호 3)

index = 0 (1차원 배열 기준)
0 // 3 + 1 = 1(2차원 배열 기준 행)

index = 3
3 // 3 + 1 = 2

index = 6
6 // 3 + 1 = 3

profile
개발자

0개의 댓글