본문 바로가기
코딩테스트/Python

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

by 포뇨j 2023. 12. 6.

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

 

프로그래머스

코드 중심의 개발자 채용. 스택 기반의 포지션 매칭. 프로그래머스의 개발자 맞춤형 프로필을 등록하고, 나와 기술 궁합이 잘 맞는 기업들을 매칭 받으세요.

programmers.co.kr

 

def solution(n, left, right):
    answer = []
    
    for i in range(left, right+1):
        x = i // n #몫
        y = i % n #나머지
        answer.append(max(x,y)+1) #몫과 나머지 중 큰 값
            
    return answer

 

인덱스를 n으로 나눴을 때, 몫과 나머지 중 큰 값에 1을 더한 값으로 1차원 배열이 구성되는 규칙이 있었다.

 

처음에는 (0,0)부터 (n,n)까지의 좌표값 (x,y) 중 큰 값으로 1차원 배열을 구성한 다음 [left:right]까지 return하도록 했다.

그런데 시간초과가 발생했고, right 인덱스까지만 계산하도록 수정해도 동일하게 시간초과 발생했다.

다른 사람의 코멘트를 참고해보니 무작정 배열을 만드는 게 아니라 규칙을 찾아야 한다는 점을 알게 됐다.

몫과 나머지를 활용한 결과 빠른 시간 내에 계산할 수 있었다.