코드
function solution(n, left, right) {
const ans = [];
for(let i=left; i<=right; i++) {
ans.push(Math.max(Math.floor(i/n), i%n) + 1)
}
return ans;
}
런타임 에러
- 저는 사실 이중배열 만들고 이중 for문을 이용해 배열 숫자 다 적어줬어요ㅎㅎ 근데 런타임 에러
- 시간초과가 아니고 런타임 에러였지만 당황하지 않았어요
- 바로 원하는 구간만 넣었는데 런타임에러^__^
- 몇 개는 맞고 몇 개는 런타임 에러면 나보고 어째
행렬의 비밀
- (0, 0) (0, 1) (0, 2)
(1, 0) (1, 1) (1, 2)
(2, 0) (2, 1) (2, 2)
- 비밀이 보이시나요? 원래 마술도 속임수 알면 다 보이고, 수학 문제도 답지 보면 아 이래서 그렇구나!! 하고 다음에 나오면 또 틀리죠ㅎㅎㅎ
- 이 행렬의 비밀은 행과 열을 Math.max로 돌려 큰 숫자 나오게 하면 되는 거였다구요~
- 그리고 하나하나 다 계산했다간 화장실 가서 양치하고 커피 타 와도 아직 돌고있네?
- left부터 right까지만 돌리면 충분해요! 우리가 원하는 답은 이거니까
- 행을 구하는 방법 = Math.floor(i/n)
- 열 구하는 방법 = i%n
- 그리고 모든 행렬은 0부터 시작하니까 +1을 해줍시다