프로그래머스 코딩테스트 입문 - DAY3
나머지 구하기
정수 num1, num2가 매개변수로 주어질 때, num1를 num2로 나눈 나머지를 return 하도록 solution 함수를 완성해주세요.
테스트 케이스
class Solution {
public int solution(int num1, int num2) {
int answer = -1;
return num1 % num2;
}
}
중앙값 구하기
중앙값은 어떤 주어진 값들을 크기의 순서대로 정렬했을 때 가장 중앙에 위치하는 값을 의미합니다. 예를 들어 1, 2, 7, 10, 11의 중앙값은 7입니다. 정수 배열 array가 매개변수로 주어질 때, 중앙값을 return 하도록 solution 함수를 완성해보세요.
테스트 케이스
import java.util.Arrays;
class Solution {
public int solution(int[] array) {
int answer = 0;
Arrays.sort(array);
answer = array[array.length / 2];
return answer;
}
}
정렬 방법은 반복문을 이용해도 가능하지만 Arrays의 sort메소드를 사용했다.(import 필수!!)
최빈값 구하기
최빈값은 주어진 값 중에서 가장 자주 나오는 값을 의미합니다. 정수 배열 array가 매개변수로 주어질 때, 최빈값을 return 하도록 solution 함수를 완성해보세요. 최빈값이 여러 개면 -1을 return 합니다.
테스트 케이스
class Solution {
public int solution(int[] array) {
int answer = 0;
int max = 0;
int idx = 0;
int checker=0;
int[] cnt = new int[1000];
if(array.length==1){
answer = array[0];
}
else{
for(int i=0;i<array.length;i++) {
cnt[array[i]]++;
}
max = cnt[0];
for(int i=1;i<cnt.length;i++){
if(max<cnt[i]){
max = cnt[i];
answer = i;
}
else if (max == cnt[i]){
answer = -1;
}
}
}
return answer;
}
}
배열 값이 한개일 경우를 고려해야 한다.
for문의 경우 다음과 같이 간단하게 사용 가능하다.(int i:배열명){}
for(int i=0;i<array.length;i++) {}
//for(int i:array) {}
배열명 대신 단순 숫자를 (int i:숫자){}처럼 사용하는 것은 안된다.
짝수는 싫어요
정수 n이 매개변수로 주어질 때, n 이하의 홀수가 오름차순으로 담긴 배열을 return하도록 solution 함수를 완성해주세요.
테스트 케이스
class Solution {
public int[] solution(int n) {
int j==0; //answer의 index값
int m = 0; //answer의 길이(배열크기)
if(n%2==0) {
m = n/2;
}
else {
m= n/2+1;
}
int[] answer = new int[m];
for(int i=1;i<=n;i++) {
if(i%2==1){
answer[j] = i;
j++;
}
}
return answer;
}
}
n이 짝수이냐 홀수이냐의 여부에 따라 answer(배열)크기가 달라진다
0부터 n까지의 값 중 홀수일 경우에만 answer에 담아 return했다.
+)배열 선언의 경우, int[] answer;로도 가능하지만 결국 사용하려면
선언 후에 answer = new int[5];처럼 초기화 해야한다. 가능하다면 선언과 동시에 초기화하는 것이 좋을 것으로 보인다.