코딩테스트

프로그래머스 코딩테스트(가까운 수, 등차수열의 특정한 항만 더하기, 문자열 잘라서 정렬하기)

SOME코딩 2023. 5. 19. 11:36

<가까운 수>

문제 설명
정수 배열 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;
    }
}