문제 확인
나의 풀이
- $N = 10^7$이기 때문에 2 차원 배열을 선언하고, 각 성분에 값을 할당할 경우 시간 초과가 발생한다.
- 따라서 별도의 규칙을 찾아서 문제를 풀려고 했는데, 고민해도 생각이 안나서 다른 사람의 풀이를 참고해서 풀었다.
- 2 차원 행렬을 1 차원으로 펼칠 경우, 각 성분은 n으로 나눈 몫과 나머지로 표현할 수 있다.
# n이 크기 때문에, n**2만 해도 시간 초과 발생!
# 규칙을 찾아야 함
# 1 2 3 2 2 3 3 3 3
# (0,0) (0,1) (0,2) (1, 0) (1, 1) (1, 2) (2, 0) (2, 1) (2, 2)
# 행렬 : 몫, 나머지로 표현된다고 생각 가능!
def solution(n, left, right):
answer = [max(i // n, i % n) + 1 for i in range(left, right + 1)]
return answer