내일배움캠프 Node.js 본캠프 60일차

김선우·2024년 11월 4일
post-thumbnail

알고리즘 문제 풀어보기

n^2 배열 자르기

문제 설명

정수 n, left, right가 주어집니다. 다음 과정을 거쳐서 1차원 배열을 만들고자 합니다.

n행 n열 크기의 비어있는 2차원 배열을 만듭니다.
i = 1, 2, 3, ..., n에 대해서, 다음 과정을 반복합니다.
1행 1열부터 i행 i열까지의 영역 내의 모든 빈 칸을 숫자 i로 채웁니다.
1행, 2행, ..., n행을 잘라내어 모두 이어붙인 새로운 1차원 배열을 만듭니다.
새로운 1차원 배열을 arr이라 할 때, arr[left], arr[left+1], ..., arr[right]만 남기고 나머지는 지웁니다.
정수 n, left, right가 매개변수로 주어집니다. 주어진 과정대로 만들어진 1차원 배열을 return 하도록 solution 함수를 완성해주세요.

제한사항

1 ≤ n ≤ 10^7
0 ≤ left ≤ right < n^2
right - left < 10^5

풀이 코드

function solution(n, left, right) {
    const answer = [];
    var i = left;
    while (i <= right) {
        answer.push(Math.max(i%n, Math.floor(i/n))+1);
        i++;
    }

    return answer;
}

풀이 과정

이차원 배열을 만든 후에 일차원 배열로 변경하지 않고 바로 answer에 담아도 구현이 가능했다.
참고 블로그

팀프로젝트(타워 디펜스 게임 리마스터)

전체적인 게임 구조를 작성했다.


내가 맡은 부분.
최종 프로젝트전 마지막 팀프로젝트이니만큼 이전보다 더 열심히 해봐야겠다.

0개의 댓글