코딩테스트

알고리즘 문제풀이 2-2

Eprld 2025. 3. 12. 12:44

문제 1 / ReverseSentence

-목표 : 괄호의 순서에 따라 정수를 반환하는 프로그램 구현

 

최종 코드

class Solution {
    public String[] solution(String s) {
        String[] answer = {};
        String replace = "[.,!?]";
        String[] word = s.split("[ ,]+");
        String[] temp = new String[word.length];
        int index = 0;

        for(String w : word){
            if(w.length() > 0){
                StringBuilder sb = new StringBuilder(w);
                temp[index++] = sb.reverse().toString().replaceAll(replace, "");
            }
        }

        answer = new String[index];
        System.arraycopy(temp, 0, answer, 0, index);

        return answer;
    }
}

문제 2 / GreatestCommonFactor

-목표 : 피라미드의 블록 수를 계산하는 프로그램 작성

 

최종 코드

class Solution {
    public int solution(int[] A) {
        int answer = A[0];

        for(int i=1; i<A.length; i++){
            answer = gcd(answer, A[i]);
        }

        return answer;
    }
    private static int gcd(int a, int b){
        if(b == 0){
            return 0;
        }
        return gcd(b, a%b);
    }
}

문제 3 / NthCanceledOrder

-목표 : 피라미드의 블록 수를 계산하는 프로그램 작성

 

최종 코드

class Solution {
    public int solution(int[] orders, int n) {
        int answer = 0;
        int cancleOrder = 0;
        int index = 0;

        for(int i =1; ; i++){
            if(index < orders.length && orders[index] == i){
                index++;
            }else {
                cancleOrder++;
                if(cancleOrder == n){
                    answer = i;
                    break;
                }
            }
        }

        return answer;
    }
}

문제 4 / MostClosestNumberToZero

 

 

-목표 : 피라미드의 블록 수를 계산하는 프로그램 작성

 

최종 코드

class Solution {
    public int solution(int[] arr) {
        int answer = arr[0];

        for(int num : arr){
            if(Math.abs(num) < Math.abs(answer) ||
                    (Math.abs(num) == Math.abs(answer) && num < answer)){
                answer = num;
            }
        }


        return answer;
    }
}

문제 5 / RemoveDuplicatedWord

-목표 : 피라미드의 블록 수를 계산하는 프로그램 작성

 

최종 코드

풀지 못하였음,


 

'코딩테스트' 카테고리의 다른 글

알고리즘 문제풀이 3-2  (0) 2025.03.18
알고리즘 문제풀이 3-1  (0) 2025.03.18
알고리즘 문제풀이 2-4  (0) 2025.03.13
알고리즘 문제풀이 2-3  (0) 2025.03.12
알고리즘 문제풀이 2-1  (0) 2025.03.10