Day 20 함수(메소드)

Day20 20단계 2023-11-09

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

class Solution {
	public static int twoPow(int length) {
		if (Integer.bitCount(length) != 1) {	
			int pow = (int)Math.log10(Integer.parseInt(Integer.toBinaryString(length)));
			length = (int)Math.pow(2, pow+1);
		}
		return length;
	}
	
	public int[] solution(int[] arr) {
		int length = arr.length;
		int[] answer = new int[twoPow(length)];
		for(int i = 0; i < arr.length; i++) {
			answer[i] = arr[i];
		}
		return answer;
    }
}
int length = 1;
while (length < arr.length) length *= 2;
return Arrays.copyOf(arr, length);
int length = (int) Math.pow(2, (Math.ceil(Math.log(arr.length)/Math.log(2))))

2. 배열 비교하기

class Solution {
    public int solution(int[] arr1, int[] arr2) {
        if (arr1.length > arr2.length) return 1;
        else if (arr1.length < arr2.length) return -1;
        else {
            int sum1 = 0;
            int sum2 = 0;
            for(int i : arr1) sum1 += i;
            for(int j : arr2) sum2 += j;
            return (sum1 > sum2) ? 1 : (sum1 == sum2) ? 0 : -1;
        }
    }
}

3. 문자열 묶기

import java.util.*;
class Solution {
    public int solution(String[] strArr) {
		HashMap<Integer, Integer> map = new HashMap<>();
		int answer = 0;
		for(String s : strArr) {
			map.put(s.length(), map.getOrDefault(s.length(), 0) + 1);
		}
		
		for(Map.Entry<Integer, Integer> entry : map.entrySet()) {
			answer = Math.max(answer, entry.getValue());
		}
        return answer;
    }
}
class Solution {
    public int solution(String[] strArr) {
        int answer = 0;

        int[] lengArr = new int[31];

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

        for(int i=0; i<=30; i++) {
            answer = Math.max(answer, lengArr[i]);
        }

        return answer;
    }
}
class Solution {
    public int solution(String[] strArr) {
        int answer = 0;  
        int[] num = new int[30+1];
        for(String s : strArr) num[s.length()]++;
        for(int i : num) answer = Math.max(answer, i);
        return answer;
    }
}