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 인덱스까지만 계산하도록 수정해도 동일하게 시간초과 발생했다.
다른 사람의 코멘트를 참고해보니 무작정 배열을 만드는 게 아니라 규칙을 찾아야 한다는 점을 알게 됐다.
몫과 나머지를 활용한 결과 빠른 시간 내에 계산할 수 있었다.
'코딩테스트 > Python' 카테고리의 다른 글
| [프로그래머스][파이썬] 캐시 (1) | 2023.12.08 |
|---|---|
| [프로그래머스][파이썬] 할인 행사 (1) | 2023.12.07 |
| [프로그래머스][파이썬] 괄호 회전하기 (1) | 2023.12.06 |
| [프로그래머스][파이썬] 연속 부분 수열 합의 개수 (2) | 2023.12.05 |
| [프로그래머스][파이썬] 귤 고르기 (2) | 2023.12.05 |