프로그래머스 코딩테스트(가까운 수, 등차수열의 특정한 항만 더하기, 문자열 잘라서 정렬하기)
<가까운 수>
문제 설명
정수 배열 array와 정수 n이 매개변수로 주어질 때, array에 들어있는 정수 중 n과 가장 가까운 수를 return 하도록 solution 함수를 완성해주세요.
풀이
import java.lang.Math;
import java.util.Arrays;
class Solution {
public int solution(int[] array, int n) {
Arrays.sort(array);
int abs = Math.abs(array[0]-n);
int answer = array[0];
for(int i=1;i<array.length;i++){
if(abs>Math.abs(array[i]-n)){
abs = Math.abs(array[i]-n);
answer = array[i];
}
}
return answer;
}
}
<등차수열의 특정한 항만 더하기>
문제 설명
두 정수 a, d와 길이가 n인 boolean 배열 included가 주어집니다. 첫째항이 a, 공차가 d인 등차수열에서 included[i]가 i + 1항을 의미할 때, 이 등차수열의 1항부터 n항까지 included가 true인 항들만 더한 값을 return 하는 solution 함수를 작성해 주세요.
풀이
class Solution {
public int solution(int a, int d, boolean[] included) {
int answer = 0;
for(int i=0;i<included.length;i++){
if(included[i])
answer+=a+d*i;
}
return answer;
}
}
<문자열 잘라서 정렬하기>
문제 설명
문자열 myString이 주어집니다. "x"를 기준으로 해당 문자열을 잘라내 배열을 만든 후 사전순으로 정렬한 배열을 return 하는 solution 함수를 완성해 주세요.
단, 빈 문자열은 반환할 배열에 넣지 않습니다.
풀이
import java.util.Arrays;
class Solution {
public String[] solution(String myString) {
String[] answer = myString.split("x");
Arrays.sort(answer);
int num = 0;
for(String s:answer){
if(s.equals("")) num++;
}
String[] arr = Arrays.copyOfRange(answer,num,answer.length);
return arr;
}
}