본문 바로가기
TIL/Java 알고리즘 문제 풀이

23.06.29

by J1-H00N 2023. 6. 29.

n의 배수 구하기

    public int[] solution(int n, int[] numList) {
        ArrayList<Integer> nums = new ArrayList<>();
        for (int num : numList) {
            if (num%n == 0) {
                nums.add(num);
            }
        }
        int[] answer = new int[nums.size()];
        for (int i = 0; i < nums.size(); i++) {
            answer[i] = nums.get(i);
        }
        return answer;
    }

 

2차원 배열로 만들기

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

시간복잡도를 n으로 낮추기 위해 노력해봤다.

 

캐릭터의 좌표

    public int[] solution(String[] keyInput, int[] board) {
        int x = 0;
        int y = 0;
        int width = board[0]/2;
        int height = board[1]/2;
        for (int i = 0; i < keyInput.length; i++) {
            switch (keyInput[i]) {
                case "up" :
                    if (y == height) break;
                    y++;
                    break;
                case "down" :
                    if (y == -height) break;
                    y--;
                    break;
                case "right" :
                    if (x == width) break;
                    x++;
                    break;
                case "left" :
                    if (x == -width) break;
                    x--;
                    break;
            }
        }
        int[] answer = {x,y};
        return answer;
    }

코드가 상당히 길긴 하지만 시간복잡도도 낮고 최선이라고 생각한다.

'TIL > Java 알고리즘 문제 풀이' 카테고리의 다른 글

23.07.07  (0) 2023.07.07
23.07.01  (0) 2023.07.01
23.06.24  (0) 2023.06.24
23.06.23  (0) 2023.06.23
23.06.18  (2) 2023.06.18