[Programmers/코딩테스트 입문] 점의 위치, 1차원 배열 2차원 배열로 만들기 Java *새롭게 생각하기*

2022. 12. 8. 14:09IT/Programmers

728x90
반응형

2차원 평면 내에서 점의 위치 구하기 (Java)

class Solution {
    public int solution(int[] dot) {
        int answer = 0;
        
        if (dot[0] > 0){ //x > 0
            if(dot[1] > 0) answer = 1; //y > 0
            else answer = 4;
        } else { //x < 0
            if(dot[1] > 0) answer = 2; //y > 0
            else answer = 3;
        }
        return answer;
    }
}

 

2차원으로 만들기 (Java)

1차원 배열 잘라서 2차원 배열로 만들기

#Arrays.copyOfRange()

#copyOfRange()

import java.util.Arrays;

class Solution {
    public int[][] solution(int[] num_list, int n) {
        int[][] answer = new int[num_list.length/n][n];
        
        for(int i = 0; i < num_list.length/n; i++) {
            answer[i] = Arrays.copyOfRange(num_list, n*i, n*(i+1));
        }
        return answer;
    }
}

똑똑한 코드 발견

class Solution {
    public int[][] solution(int[] num_list, int n) {
        
        int len = num_list.length;
        int[][] answer = new int[len/n][n];

        for(int i=0; i<len; i++){
            answer[i/n][i%n]=num_list[i];
        }

        return answer;
    }
}

/랑 %를 이용한게 너무 천재적이라 할말을 잃었다.

 

class Solution {
    public int[][] solution(int[] num_list, int n) {
        int[][] answer = new int[num_list.length/n][n];
        int cnt = 0;
        
        for(int i = 0 ; i < num_list.length/n ; i++){
            for(int j = 0 ; j < n ; j++){
                answer[i][j] = num_list[cnt++];
            }
        }
        return answer;
    }
}

이건 무난하게 for문 두개 사용한 코드

 

728x90
반응형