programmers 기초 Day6

Hwani·2024년 6월 6일

프로그래머스 DAY 1~25

목록 보기
32/51

문제 - 마지막 두 원소

풀이

import java.util.*;

class Solution {
    public List solution(int[] num_list) {
        List<Integer> answer = new ArrayList<>();
        
        int last = num_list[num_list.length - 1]; 
        int lastb = num_list[num_list.length - 2];  
        
        for(int i = 0; i < num_list.length; i++){
            answer.add(num_list[i]);
        }
        
        if (last > lastb) {
            answer.add(last - lastb);
        } else {
            answer.add(last * 2);
        }
        
        return answer;
    }
}

문제 - 수 조작하기 1

풀이

class Solution {
    public int solution(int n, String control) {
        String[] split = control.split("");
        
        for (int i = 0; i < split.length; i++) {
            if (split[i].equals("w")) {
                n += 1;
            } else if (split[i].equals("s")) {
                n -= 1;
            } else if (split[i].equals("d")) {
                n += 10;
            } else if (split[i].equals("a")) {
                n -= 10;
            }
        }

        return n;
    }
}

문제 - 수 조작하기 2

풀이

class Solution {
    public String solution(int[] numLog) {
       StringBuilder sb = new StringBuilder();
        for (int i = 1; i < numLog.length; i++) {
            switch (numLog[i] - numLog[i - 1]) {
                case 1 -> sb.append("w");
                case 10 -> sb.append("d");
                case -1 -> sb.append("s");
                case -10 -> sb.append("a");
            }
        }
        return sb.toString();
    }
}

문제 - 수열과 구간 쿼리 3

풀이

class Solution {
    public int[] solution(int[] arr, int[][] queries) {
        int n = 0;

        for (int i = 0; i < queries.length; i++) {
            n = arr[queries[i][0]];
            arr[queries[i][0]] = arr[queries[i][1]];
            arr[queries[i][1]] = n;
        }

        return arr;
    }
}

문제 - 수열과 구간 쿼리 2

풀이

import java.util.*;

class Solution {
    public int[] solution(int[] arr, int[][] queries) {
        int[] answer = new int[queries.length];
        Arrays.fill(answer, Integer.MAX_VALUE);
        
        for (int j = 0; j < queries.length; j++) {
            for (int i = queries[j][0]; i <= queries[j][1]; i++) {
                if (arr[i] > queries[j][2]) {
                    answer[j] = Math.min(answer[j], arr[i]);
                }
            }
            if (answer[j] == Integer.MAX_VALUE) answer[j] = -1;
        }
        return answer;
    }
}
profile
개발자될거야

0개의 댓글