programmers Day3

Hwani·2024년 5월 9일
post-thumbnail

문제 - 나머지 구하기

풀이

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);

        return array[array.length / 2];
    }
}

문제 - 최빈값 구하기

풀이

import java.util.*;

class Solution {
    public int solution(int[] array) {
        int maxCount = 0; // 가장 많이 등장한 숫자의 등장 횟수
        int answer = 0; // 가장 많이 등장한 숫자

        Map<Integer, Integer> map = new HashMap<>();

        for(int number : array) {
        	// 현재 숫자의 등장 횟수
            int count = map.getOrDefault(number, 0) + 1;
			
            // 등장 횟수가 가장 많다면 그 값을 count에 대입
            if(count > maxCount) {
                maxCount = count;
                answer = number;
            }

            else if(count == maxCount) {
                answer = -1;
            }

            map.put(number, count);
        }

        return answer;
    }
}

설명

map.getOrDefault 메서드 설명

V getOrDefault(Object key, V defaultValue)
  • key는 찾고자 하는 키
  • defaultValue는 key가 Map에 존재하지 않으면 반환할 기본값이다.
int count = map.getOrDefault(number, 0) + 1;
  • number 키에 해당하는 값이 있다면 그 값을 가져온다.
  • number 키에 해당하는 값이 맵에 없다면 기본값 0을 가져온다.
  • 가져온 값에 1을 더하여 count 변수에 저장

문제 - 짝수는 싫어요

풀이

import java.util.*;

class Solution {
    public int[] solution(int n) {
        List<Integer> oddNumbers = new ArrayList<>();

        for (int i = 1; i <= n; i++) {
            if (i % 2 == 1) { 
                oddNumbers.add(i);
            }
        }

        int[] result = new int[oddNumbers.size()];
        for (int i = 0; i < oddNumbers.size(); i++) {
            result[i] = oddNumbers.get(i);
        }

        return result;
    }
}
profile
개발자될거야

0개의 댓글