📌Back-End/프로그래머스

Java 프로그래머스 코딩 기초 트레이닝 Day 20 함수(메서드)

구 일 2024. 6. 16. 17:29
728x90
반응형

 

배열의 길이를 2의 거듭제곱으로 만들기

프로그래머스 배열의 길이를 2의 거듭제곱으로 만들기 자바

 

 

/**
 *  코딩 기초 트레이닝 Day 20
 *  배열의 길이를 2의 거듭제곱으로 만들기
 */
public class Main1 {
    public static void main(String[] args) {
        int[] result = solution(new int[]{1, 2, 3, 4, 5, 6});
        for (int num : result) {
            System.out.print(num + " ");
        }
        System.out.println();

        result = solution(new int[]{58, 172, 746, 89});
        for (int num : result) {
            System.out.print(num + " ");
        }
        System.out.println();
    }

    public static int[] solution(int[] arr) {
        int n = 0;

        while (arr.length > (int) Math.pow(2, n)) {
            n++;
        }

        int[] answer = new int[(int) Math.pow(2, n)];
        for (int i = 0; i < answer.length; i++) {
            if (i < arr.length) {
                    answer[i] = arr[i];
            } else {
                answer[i] = 0;
            }
        }

        return answer;
    }
}

 

 

배열 비교하기

프로그래머스 배열 비교하기 자바

 

 

import java.util.Arrays;

/**
 *  코딩 기초 트레이닝 Day 20
 *  배열 비교하기
 */
public class Main2 {
    public static void main(String[] args) {
        System.out.println(solution(new int[]{49, 13}, new int[]{70, 11, 2}));
        System.out.println(solution(new int[]{100, 17, 84, 1}, new int[]{55, 12, 65, 36}));
        System.out.println(solution(new int[]{1, 2, 3, 4, 5}, new int[]{3, 3, 3, 3, 3}));
    }

    public static int solution(int[] arr1, int[] arr2) {
        if (arr1.length != arr2.length) {
            if (arr1.length > arr2.length) {
                return 1;
            } else {
                return -1;
            }
        } else {
            int arr1Sum = Arrays.stream(arr1).sum();
            int arr2Sum = Arrays.stream(arr2).sum();

            if (arr1Sum > arr2Sum) {
                return 1;
            } else if (arr1Sum < arr2Sum) {
                return -1;
            } else {
                return 0;
            }
        }
    }
}

 

 

문자열 묶기

프로그래머스 문자열 묶기 자바

 

 

import java.util.Hashtable;

/**
 *  코딩 기초 트레이닝 Day 20
 *  문자열 묶기
 */
public class Main3 {
    public static void main(String[] args) {
        System.out.println(solution(new String[]{"a", "bc", "d", "efg", "hi"}));
    }

    public static int solution(String[] strArr) {
        Hashtable<Integer, Integer> ht = new Hashtable<>();
        int maxCnt = 0;

        for (int i = 0; i < strArr.length; i++) {
            int len = strArr[i].length();

            if (!ht.containsKey(len)) {
                ht.put(len, 1);
            } else {
                ht.replace(len, ht.get(len) + 1);
            }
        }

        for (int value : ht.values()) {
            maxCnt = Math.max(maxCnt, value);
        }

        return maxCnt;
    }
}

 

 

배열의 길이에 따라 다른 연산하기

프로그래머스 배열의 길이에 따라 다른 연산하기 자바

 

 

/**
 *  코딩 기초 트레이닝 Day 20
 *  배열의 길이에 따라 다른 연산하기
 */
public class Main4 {
    public static void main(String[] args) {
        int[] result = solution(new int[]{49, 12, 100, 276, 33}, 27);
        for (int num : result) {
            System.out.print(num + " ");
        }
        System.out.println();

        result = solution(new int[]{444, 555, 666, 777}, 100);
        for (int num : result) {
            System.out.print(num + " ");
        }
        System.out.println();
    }

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

        for (int i = 0; i < arr.length; i++) {
            if (arr.length % 2 != 0) {
                answer[i] = i % 2 == 0 ? arr[i] + n : arr[i];
            } else {
                answer[i] = i % 2 != 0 ? arr[i] + n : arr[i];
            }
        }

        return answer;
    }
}

 

 

뒤에서 5등까지

프로그래머스 뒤에서 5등까지 자바

 

 

import java.util.Arrays;

/**
 *  코딩 기초 트레이닝 Day 20
 *  뒤에서 5등까지
 */
public class Main5 {
    public static void main(String[] args) {
        int[] result = solution(new int[]{12, 4, 15, 46, 38, 1, 14});
        for (int num : result) {
            System.out.print(num + " ");
        }
        System.out.println();
    }

    public static int[] solution(int[] num_list) {
        Arrays.sort(num_list);
        int[] result = Arrays.copyOf(num_list, 5);

        return result;
    }
}

 

 

728x90
반응형