프로그래머스 문제풀이/알고리즘 (JAVA)

[JAVA] 프로그래머스 알고리즘 문제풀이 - Level 0 (10~13번 문제풀이)

남건욱 2023. 9. 13. 02:11

목차

    반응형
    10. 배열 두배 만들기

    문제

    class Solution {
        public int[] solution(int[] numbers) {
            if((numbers.length >= 1 && numbers.length <= 1000) && (numbers.length >= -10000 && numbers.length <= 10000)){
                for(int i=0; i<numbers.length; i++){
                    numbers[i]*=2;
                }
            }
            return numbers;
        }
    }

    <작성한 코드>

    먼저 범위를 설정해준 뒤 for문으로 numbers 배열의 길이만큼 돌려주었다. for문 안의 내용은 number안의 원소 각각에 2배를 해서 넣어주는 식으로 만들었다. 그 후 numbers 배열을 리턴해주고 종료하였다.

     

     

     

     

    11. 나머지 구하기

    문제

    class Solution {
        public int solution(int num1, int num2) {
            int answer=0;
            if((num1 > 0 && num1 <=100 && (num2 > 0 && num2 <=100))){
                answer = num1%num2;
            }
          return answer;
        }
    }

    <작성한 코드>

    answer을 먼저 초기화해준후, 범위값을 지정해 주었다. 

    if문 안에는 num1과 num2를 나눠서 나머지를 answer에 넣어주고 리턴해주고 종료하였다.

     

     

     

     

    12. 중앙값 구하기

    문제

     

    import java.util.Arrays;
    
    class Solution {
        public int solution(int[] array) {
           Arrays.sort(array); // 배열을 오름차순으로 정렬
           
                   // 홀수인지 확인
            if(array.length % 2 == 0){
                return 0;
            }
            
           	int midIndex = array.length / 2; // 중앙 인덱스 계산
    
    
            
            return array[midIndex]; // 중앙값 반환
        }
    }

    <작성한 코드>

    유틸을 사용해서 배열을 정렬한뒤 배열의 길이가 홀수 인지 체크한다. 그 뒤 길이/2를 해주어 중앙값을 구한 뒤 midIndex번째에 위치한 값을 반환하였다.

     

     

     

    13. 최빈값 구하기

    문제

    class Solution {
        public int solution(int[] array) {
            int[] counts = new int[1001];
            int maxCount = 0;
            int maxNum = 0;
            
            for(int num : array){
                counts[num]++;
                if(counts[num] > maxCount){
                    maxCount = counts[num];
                    maxNum = num;
                } else if(counts[num] == maxCount){
                    maxNum = -1;
                }
            }
            
            return maxNum;
        }
    }

    <작성한 코드>

    빈도수를 체크할 maxCount를 선언하고 가장 큰 변수를 저장할 maxNum을 선언후 초기화해 주었다. for문으로 array 안의 값을 하나씩 넣어가며 반복해 주었다. count [num] 번째 변수에 빈도수만큼 1씩 증가할 것이고, if문 안에서 counts [num]에 있는 수가 기존 maxCount보다 클 시 maxCount, maxNum의 값을 변경해 주었다. 그리고 예시에 나온 것처럼 최빈값이 여러 개면 -1을 반환하도록 하였다.

     

     

    반응형
    프로필사진

    남건욱's 공부기록