반응형
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을 반환하도록 하였다.
반응형
'프로그래머스 문제풀이 > 알고리즘 (JAVA)' 카테고리의 다른 글
[JAVA] 프로그래머스 알고리즘 문제풀이 - Level 0 (20~24번 문제풀이) (0) | 2023.09.20 |
---|---|
[JAVA] 프로그래머스 알고리즘 문제풀이 - Level 0 (14~19번 문제풀이) (0) | 2023.09.20 |
[JAVA] 프로그래머스 알고리즘 문제풀이 - Level 0 (6~9번 문제풀이) (0) | 2023.06.07 |
[JAVA] 프로그래머스 알고리즘 문제풀이 - Level 0 (1~5번 문제풀이) (0) | 2023.06.07 |
[JAVA] 프로그래머스 알고리즘 문제풀이 - 준비하며 (0) | 2023.06.07 |
남건욱's 공부기록