Algorithm

[프로그래머스] n^2 배열 자르기

쑤야. 2023. 12. 15. 15:21

접근


  • 설명처럼 2차 배열 → 슬라이싱 및 1차 배열 변환으로 접근했다가는 시간초과가 발생한다.
  • 인덱스 값을 활용하여 left부터 right 인덱스만 접근한다.

 

로직


  • 인덱스를 n으로 나눴을 때의 몫과 나머지 중 큰 값에 1을 더한 값이 원소값이 된다. (직접 작성해보면 쉽게 찾을 수 있다)
  • result 배열에 left부터 right 인덱스에 해당하는 값을 넣어준다.

 

코드


def solution(n, left, right):
    
    result = []
    for i in range(left, right+1):
        result.append(max(i//n, i%n)+1)
        
    return result