본문 바로가기

혼자 코딩 공부하기/프로그래머스 코딩테스트

231219 프로그래머스 코딩테스트

간단한 식 계산하기

class Solution {
    public int solution(String binomial) {
        int answer = 0;
        String a = binomial.substring(0, binomial.indexOf(" "));
        String b = binomial.substring(binomial.indexOf(" ") + 1, binomial.lastIndexOf(" "));
        String c = binomial.substring(binomial.lastIndexOf(" ") + 1);
        switch (b) {
            case "+" :
                answer = Integer.parseInt(a) + Integer.parseInt(c);
                break;
            case "*" :
                answer = Integer.parseInt(a) * Integer.parseInt(c);
                break;
            case "-" :
                answer = Integer.parseInt(a) - Integer.parseInt(c);
                break;
        }
        return answer;
    }
}

 

수열과 구간 쿼리 4

class Solution {
    public int[] solution(int[] arr, int[][] queries) {
        int[] answer = new int[arr.length];
        int temp = 0;
        for(int i = 0; i < queries.length; i++) {
            for(int j = queries[i][0]; j <= queries[i][1]; j++) {
           // for(int j = 0; j < queries[i][1]; j++) {}     
                if (j % queries[i][2] == 0) {
                    arr[j]++;
                }
            }
        }
        answer = arr.clone();
        return answer;
    }
}

 

컨트롤 제트

class Solution {
    public int solution(String s) {
        String[] arr = s.split(" ");
        int answer = 0;
        for(int i = 0; i < arr.length; i++) {
            if (arr[i].equals("Z")) {
                answer -= Integer.parseInt(arr[i-1]);
            } else {
                answer += Integer.parseInt(arr[i]);
            }
        }
        return answer;
    }
}

 

이진수 더하기

class Solution {
    public String solution(String bin1, String bin2) {
        String answer = Integer.toBinaryString(Integer.parseInt(bin1,2) + Integer.parseInt(bin2,2));
        return answer;
    }
}

 

조건에 맞게 수열 변환하기 2

import java.util.Arrays;

class Solution {
    public int solution(int[] arr) {
        int answer = 0;
        // boolean run = true;
        int[] temp;
        while (true) {
            temp = Arrays.copyOf(arr, arr.length);
            for(int i = 0; i < arr.length; i++) {
                if (arr[i] % 2 == 0 && arr[i] >= 50) {
                    arr[i] /= 2;
                 } else if (arr[i] % 2 != 0 && arr[i] < 50) {
                    arr[i] = arr[i] * 2 + 1;
                 }
            }
            if (Arrays.equals(arr, temp)) {
                break;
            }
            answer++;
        }
        return answer;
    }
}