CodingTest

코딩테스트 입문 - Day 25

Jiwon_Loopy 2025. 5. 17. 14:22
반응형

문자열 밀기


import java.util.ArrayDeque;

class Solution {
      public static int solution(String A, String B) {
        ArrayDeque<String> ad = new ArrayDeque<>();
        int cnt = 0;
        
        for(String s : A.split("")) {
            ad.addLast(s);
        }
        for(int i = 0 ; i < B.length() ; i++) {
            if(String.join("",ad).equals(B)) {
                break;
            }
            ad.addFirst(ad.pollLast());
            cnt++;
        }
        return cnt < A.length() ? cnt : -1;
    }
}

종이 자르기


class Solution {
    public int solution(int M, int N) {
        return M * N - 1;
    }
}

연속된 수의 합


class Solution {
    public int[] solution(int num, int total) {
            int[] arr = new int[num];
            int mid = 0;
            int start = 0;
            int idx = 0;
        if(num % 2 == 1){
            mid = total / num;
            start = num /2;
            for(int i = mid - start; i <= mid + start; i++){
                arr[idx++] = i;
            }
        }else{
            mid = total / num;  // 3
            start = num / 2; // 2, 3
            for(int i = mid - start + 1; i <= mid + start; i++){
                arr[idx++] = i;
            }
        }
        return arr;
    }
}

다음에 올 숫자


class Solution {
    public int solution(int[] common) {
        int a = common[1] - common[0];
        int b = 0;
        if(common[0] != 0){
            b = common[1] / common[0];
        }
        int lastIdx = common.length - 1;
        if(common[lastIdx] - common[lastIdx - 1] == a){
            return common[lastIdx] + a;
        }
        else{
            return common[lastIdx] * b;
        }
    }
}
728x90
반응형