Day3

기초

문자열 섞기

오답

class Solution {
    public String solution(String str1, String str2) {
        String answer = new StringBuilder("");
        
        for(int i=0; i<str1.length();i++){
            answer.append(str1[i]);
            answer.append(str2[i]);
        }
        
        
        return answer;
    }
}

class Solution {
    public String solution(String str1, String str2) {
        StringBuilder answer = new StringBuilder();
        
        for(int i = 0; i < str1.length(); i++) {
            answer.append(str1.charAt(i));
            answer.append(str2.charAt(i));
        }
        
        return answer.toString();
    }
}

문자 리스트를 문자열로 변환하기

내 답

class Solution {
    public String solution(String[] arr) {
        String answer = "";
        
        for(int i = 0; i<arr.length;i++){
            answer += arr[i];
        }
        return answer;
    }
}

다른 답

class Solution {
    public String solution(String[] arr) {
        return String.join("", arr);
    }
}

문자열 곱하기

class Solution {
    public String solution(String my_string, int k) {
        String answer = "";
        
        for(int i=0; i<k; i++){
            answer += my_string;
        }
        
        return answer;
    }
}

더 크게 합치기

class Solution {
    public int solution(int a, int b) {
        String str1 = String.valueOf(a) + String.valueOf(b);
        String str2 = String.valueOf(b) + String.valueOf(a);
        
        int num1 = Integer.parseInt(str1);
        int num2 = Integer.parseInt(str2);
        
        return Math.max(num1, num2);
    }
}

  • 자바는 하다보면 가끔 인트->스트링 변환하는 경우 String.valueOf() 같은거 안 쓰고 그냥 숫자+"" 많이 씀

두 수의 연산값 비교하기

class Solution {
    public int solution(int a, int b) {
        String str = ("" + a + b);

        int num = Integer.parseInt(str);
        int product = 2 * a * b;
        
        return Math.max(num, product);
    }
}

입문

나머지 구하기

class Solution {
    public int solution(int num1, int num2) {   
        return num1%num2;
    }
}

중앙값 구하기

import java.util.Arrays;

class Solution {
    public int solution(int[] array) {
        Arrays.sort(array);

        int midIndex = array.length / 2;

        return array[midIndex];
    }
}

최빈값 구하기

import java.util.HashMap;
import java.util.Map;

class Solution {
    public int solution(int[] array) {
        Map<Integer, Integer> frequencyMap = new HashMap<>();

        for (int num : array) {
            frequencyMap.put(num, frequencyMap.getOrDefault(num, 0) + 1);
        }

        int mode = -1;
        int maxFrequency = 0;
        boolean hasMultipleModes = false;

        for (Map.Entry<Integer, Integer> entry : frequencyMap.entrySet()) {
            int number = entry.getKey();
            int frequency = entry.getValue();
            
            if (frequency > maxFrequency) {
                maxFrequency = frequency;
                mode = number;
                hasMultipleModes = false; 
            } else if (frequency == maxFrequency) {
                hasMultipleModes = true; 
            }
        }

        return hasMultipleModes ? -1 : mode;
    }
}

짝수는 싫어요

import java.util.ArrayList;

class Solution {
    public ArrayList<Integer> solution(int n) {
        ArrayList<Integer> answer = new ArrayList<>();
        
        for(int i = 0; i<n+1; i++){
            if(i%2 == 1){
                answer.add(i); 
            }
        }
        
        return answer;
    }
}

'알고리즘 > 프로그래머스' 카테고리의 다른 글

프로그래머스 자바 - 두 개 뽑아서 더하기  (0) 2024.08.12
Day2  (0) 2024.08.12