프로그래머스 문제풀이/알고리즘 (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 공부기록