📌Back-End/프로그래머스

Java 프로그래머스 코딩 기초 트레이닝 Day 6 조건문, 반복문

구 일 2024. 5. 1. 18:10
728x90
반응형

 

 

마지막 두 원소

프로그래머스 마지막 두 원소 자바

 

package Day_6;

/**
 * 코딩 기초 트레이닝 Day 6
 * 마지막 두 원소
 */
public class Main1 {
    public static void main(String[] args) {
        int[] num_list = {2, 1, 6};
        int[] result = solution(num_list);
        for (int num : result) {
            System.out.print(num + " ");
        }
        System.out.println();

        int[] num_list1 = {5, 2, 1, 7, 5};
        result = solution(num_list1);
        for (int num : result) {
            System.out.print(num + " ");
        }
        System.out.println();
    }

    public static int[] solution(int[] num_list) {
        int[] answer = new int[num_list.length + 1];
        int tmp = num_list[num_list.length - 1] - num_list[num_list.length - 2];

        for (int i = 0; i < num_list.length; i++) {
            answer[i] = num_list[i];
        }

        answer[num_list.length] = (tmp > 0) ? tmp : (num_list[num_list.length - 1] * 2);

        return answer;
    }
}

 

 

수 조작하기 1

프로그래머스 수 조작하기 1 자바

 

package Day_6;

/**
 * 코딩 기초 트레이닝 Day 6
 * 수 조작하기 1
 */
public class Main2 {
    public static void main(String[] args) {
        System.out.println(solution(0, "wsdawsdassw"));
    }

    public static int solution(int n, String control) {

        for (String s : control.split("")) {
            if (s.equals("w")) {
                n += 1;
            } else if (s.equals("s")) {
                n -= 1;
            } else if (s.equals("d")) {
                n += 10;
            } else if (s.equals("a")) {
                n -= 10;
            }
        }

        return n;
    }
}

 

 

수 조작하기 2

프로그래머스 수 조작하기 2 자바

 

package Day_6;

/**
 * 코딩 기초 트레이닝 Day 6
 * 수 조작하기 2
 */
public class Main3 {
    public static void main(String[] args) {
        int[] numLog = {0, 1, 0, 10, 0, 1, 0, 10, 0, -1, -2, -1};
        System.out.println(solution(numLog));
    }

    public static String solution(int[] numLog) {
        StringBuffer sb = new StringBuffer();

        for (int i = 0; i < numLog.length - 1; i++) {
            int tmp = numLog[i + 1] - numLog[i];

            if (tmp == 1) {
                sb.append("w");
            } else if (tmp == -1) {
                sb.append("s");
            } else if (tmp == 10) {
                sb.append("d");
            } else if (tmp == -10) {
                sb.append("a");
            }
        }

        return sb.toString();
    }
}

 

수열과 구간 쿼리 3

프로그래머스 수열과 구간 쿼리 3

 

 

package Day_6;

/**
 * 코딩 기초 트레이닝 Day 6
 * 수열과 구간 쿼리 3
 */
public class Main4 {
    public static void main(String[] args) {
        int[] arr = {0, 1, 2, 3, 4};
        int[][] queries = {{0, 3}, {1, 2}, {1, 4}};
        int[] result = solution(arr, queries);

        for (int num : result) {
            System.out.print(num + " ");
        }
        System.out.println();
    }

    public static int[] solution(int[] arr, int[][] queries) {

        for (int k = 0; k < queries.length; k++) {
            int i = queries[k][0];
            int j = queries[k][1];
            int tmp = 0;

            tmp = arr[i];
            arr[i] = arr[j];
            arr[j] = tmp;
        }

        return arr;
    }
}

 

 

수열과 구간 쿼리 2

프로그래머스 수열과 구간 쿼리 2 자바

 

package Day_6;

/**
 * 코딩 기초 트레이닝 Day 6
 * 수열과 구간 쿼리 2
 */
public class Main5 {
    public static void main(String[] args) {
        int[] arr = {0, 1, 2, 4, 3};
        int[][] queries = {{0, 4, 2}, {0, 3, 2}, {0, 2, 2}};
        int[] result = solution(arr, queries);

        for (int num : result) {
            System.out.print(num + " ");
        }
        System.out.println();
    }

    public static int[] solution(int[] arr, int[][] queries) {
        int[] answer = new int[queries.length];

        for (int i = 0; i < queries.length; i++) {
            int s = queries[i][0];
            int e = queries[i][1];
            int k = queries[i][2];
            int min = Integer.MAX_VALUE;

            for (int j = s; j <= e; j++) {

                if (arr[j] > k) {
                    min = Math.min(min, arr[j]);
                }
            }

            answer[i] = min != Integer.MAX_VALUE ? min : -1;
        }

        return answer;
    }
}

 

 

728x90
반응형