코딩테스트

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

오류유발자 2024. 5. 3. 15:44

 

 

 

문제 링크

https://school.programmers.co.kr/learn/courses/30/lessons/87390?language=java

 

프로그래머스

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

programmers.co.kr

 

 

문제 풀이

1. n행 n열 크기의 비어있는 2차원 배열을 만들고, 행과 열 중 큰 수의 값으로 채운다.

2. 2차원 배열을 잘라 붙여 1차원 배열로 만든다.

3. 주어진 left값을 시작 index로, right를 마지막 index로 하여 새로운 배열을 만들어 반환한다.

 

 

 

코드

right와 left 값의 차를 이용하여 배열을 생성한다.

2차원 배열에서의 행과 열을 구해, 둘 중 큰 값을 담아 return 한다.

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

 

 

 

실행 결과