programmers 기초 Day7

Hwani·2024년 6월 6일

프로그래머스 DAY 1~25

목록 보기
33/51

문제 - 수열과 구간 쿼리 4

풀이

class Solution {
    public int[] solution(int[] arr, int[][] queries) {
        
        for (int i=0; i<queries.length; i++) {
            int s = queries[i][0];
            int e = queries[i][1];
            int k = queries[i][2];
            
            for(int j = s; j <= e; j++) {
               if(j % k == 0){
                    arr[j] += 1;   
                } 
            }
        }
        return arr;
    }
}

문제 - 배열 만들기 2

풀이

import java.util.*;

class Solution {
    public int[] solution(int l, int r) {
        ArrayList<Integer> arraylist = new ArrayList<>();
        

        for (int i = l; i <= r; i++) {
            if (String.valueOf(i).matches("[05]+")) {
                arraylist.add(i);
            }
        }
        
        if (arraylist.isEmpty()) {
            return new int[]{-1};
        }

        int[] a = new int[arraylist.size()];
        for (int j = 0; j < arraylist.size(); j++) {
            a[j] = arraylist.get(j);
        }
        
        return a;
    }
}

문제 - 카운트 업

풀이

import java.util.*;

class Solution {
    public int[] solution(int start_num, int end_num) {
        int[] answer = new int[end_num - start_num + 1];
        
        for (int i = 0; i <= end_num - start_num; i++) {
            answer[i] = start_num + i;
        }

        return answer;
    }
}

문제 - 콜라츠 수열 만들기

풀이

import java.util.*;

class Solution {
    public int[] solution(int n) {
        List<Integer> list = new ArrayList<>();
        list.add(n);
        
        while (n != 1) {
            if (n % 2 == 0) {
                n = n / 2;
            } else {
                n = 3 * n + 1;
            }
            list.add(n);
        }
        
        int[] answer = new int[list.size()];
        for (int i = 0; i < list.size(); i++) {
            answer[i] = list.get(i);
        }
        
        return answer;
    }
}

문제 - 배열 만들기 4

풀이

import java.util.*;

class Solution {
    public int[] solution(int[] arr) {
        List<Integer> stk = new ArrayList<>();
        int i = 0;

        while (i < arr.length) {
            if (stk.isEmpty()) {
                stk.add(arr[i]);
                i += 1;
            } else if (stk.get(stk.size() - 1) < arr[i]) {
                stk.add(arr[i]);
                i += 1;
            } else if (stk.get(stk.size() - 1) >= arr[i]) {
                stk.remove(stk.size() - 1);
            }
        }

        int[] result = new int[stk.size()];
        for (int j = 0; j < stk.size(); j++) {
            result[j] = stk.get(j);
        }

        return result;
    }
}
profile
개발자될거야

0개의 댓글