코딩테스트/LV. 2

LV.2 :: n^2 배열 자르기

KUROMI98 2024. 10. 21. 06:53

https://school.programmers.co.kr/learn/courses/30/lessons/87390

 

프로그래머스

코드 중심의 개발자 채용. 스택 기반의 포지션 매칭. 프로그래머스의 개발자 맞춤형 프로필을 등록하고, 나와 기술 궁합이 잘 맞는 기업들을 매칭 받으세요.

programmers.co.kr

 


function solution(n, left, right) {
    const result = [];
    
    for (let i = left; i <= right; i++) {
        const row = Math.floor(i / n); // 행 계산
        const col = i % n; // 열 계산
        result.push(Math.max(row, col) + 1); // 값 계산하여 추가
    }
    
    return result;
}

비추천하는 방식. 모든 배열을 다~ 구한 다음에 slice하는 방식인데, 
이 경우 필요없는 부분을 너무 많이 구해버려서 런타임 에러가 난다.
효율적이지도 않은 코드. 여기서 한참 헤맸는데 방법 자체를 바꿔야 통과할 수 있다.

function solution(n, left, right) {
    let arr = [];
    for (let row=0; row<n; row++){
        for (let column=0; column<n; column++){
            arr.push(Math.max(row,column) + 1)
        }
    }

    return arr;
}