카테고리 없음

[프로그래머스] Level.2 n^2 배열자르기 (JAVA)

ku-na 2022. 6. 2. 15:21

문제 설명과 제한사항

풀이

class Solution {
    public int[] solution(int n, long left, long right) {
        int[] answer = new int[(int)(right - left + 1)];
        int index = 0;
        for(long i = left; i <= right; i++){
            answer[index++] = (int)Math.max((i/n),i%n) + 1;
        }
        return answer;
    }
}

++

문제 접근 자체는 쉽지만 어려운점은 left right 가 int형으로 표현하기엔 너무 크다. (제한사항)

그래서 문제의 순서처럼 이차원 배열을 만들고, 일차 배열로 바꾼 뒤 자르기에는 문제가 생긴다.

그래서 몫은 열 나머지는 행을 나타내는 것을 이용해서 풀었다.

+1 을 하는 이유는 i 가 1부터 시작하기 때문임.