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

쿼카쿼카·2023년 2월 21일
0

알고리즘

목록 보기
37/67

코드

// 이게 이렇게 가능하네..
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을 해줍시다
profile
쿼카에요

0개의 댓글