본문 바로가기
알고리즘/알고리즘 설명

20230726 [Java] 문제풀이

by JayAlex07 2023. 7. 26.

20230726 [Java] 문제풀이

기초 다지기!!!!!

 

 

[프로그래머스] 수열과 구간 쿼리 4

import java.util.*;
class Solution {
    public int[] solution(int[] arr, int[][] queries) {

        int[] answer = new int[arr.length];
        for(int num = 0; num < arr.length; num++) answer[num] = arr[num];

        for (int[] q : queries) {
            for (int i = q[0]; i <= q[1]; i++){
                if (i % q[2] == 0) answer[i] += 1;;
            }
        }

        return answer;
    }
}

 

 

[프로그래머스] 카운트

class Solution {
    public int[] solution(int start, int end) {
        int[] answer = new int[end - start + 1];

        for (int i = 0; i <= end - start; i ++) answer[i] = i + start;

        return answer;
    }
}

 

 

[프로그래머스] 배열 만들기

import java.util.*;
class Solution {
    public ArrayList<Integer> solution(int l, int r) {
        ArrayList<Integer> answer = new ArrayList<Integer>();

        if (l % 5 != 0) {
            int tempL = l / 5;
            l = (5 * (tempL + 1));
        }

        for (int i = l ; i <= r; i += 5) {

            int num = i;
            boolean isTrue = true;

            while (num > 0) {
                int tempI = num % 10;

                if (tempI != 5 && tempI != 0) {
                    isTrue = false;
                    break;
                }

                num = num / 10;
            }

            if (isTrue) answer.add(i);
        }

        if (answer.size() == 0) answer.add(-1);
        return answer;
    }
}

 

 

[프로그래머스] 문자열 여러 번 뒤집기

class Solution {
    public StringBuffer solution(String my_string, int[][] queries) {
        StringBuffer answer = new StringBuffer();
        answer.append(my_string);

        for (int[] q : queries) {
            StringBuffer tempString = new StringBuffer(answer.substring(q[0], q[1] + 1));
            answer.delete(q[0], q[1] + 1);
            answer.insert(q[0], tempString.reverse());
        }

        return answer;
    }
}

 

 

[프로그래머스] 부분 문자열 이어 붙여 문자열 만들기

class Solution {
    public StringBuffer solution(String[] my_strings, int[][] parts) {
        StringBuffer answer = new StringBuffer();

        for (int i = 0; i < my_strings.length; i ++) {
            answer.append(my_strings[i].substring(parts[i][0], parts[i][1] + 1));
        }

        return answer;
    }
}

 

 

[프로그래머스] 접미사 배열

import java.util.*;
class Solution {
    public String[] solution(String my_string) {
        String[] answer = new String[my_string.length()];

        int lastIdx = my_string.length();

        for (int i = 0; i < my_string.length(); i ++) {
            answer[i] = my_string.substring(i, lastIdx);
        }

        Arrays.sort(answer);
        return answer;
    }
}

 

 

[프로그래머스] 배열 만들기 1

import java.util.*;
class Solution {
    public ArrayList<Integer> solution(int n, int k) {
        ArrayList<Integer> answer = new ArrayList<Integer>();

        for (int i = k; i <= n; i += k) answer.add(i);

        return answer;
    }
}

 

 

[프로그래머스] 카운트 다운

import java.util.*;
class Solution {
    public ArrayList<Integer> solution(int start, int end) {
        ArrayList<Integer> answer = new ArrayList<Integer>();

        for (int i = start; i >= end; i --) answer.add(i);

        return answer;
    }
}

 

 

[프로그래머스] 가까운 1 찾기

class Solution {
    public int solution(int[] arr, int idx) {

        for (int i = idx; i < arr.length; i ++) {
            if (arr[i] == 1)
                return i;
        }

        return -1;
    }
}

 

 

[프로그래머스] 배열 만들기 3

import java.util.*;

class Solution {
    public ArrayList<Integer> solution(int[] arr, int[][] intervals) {
        ArrayList<Integer> answer = new ArrayList<Integer>();

        for (int[] i : intervals) {
            for (int j = i[0]; j <= i[1]; j ++) answer.add(arr[j]);
        }

        return answer;
    }
}

 

 

[프로그래머스] 2의 영역

import java.util.*;
class Solution {
    public ArrayList<Integer> solution(int[] arr) {
        ArrayList<Integer> answer = new ArrayList<Integer>();

        int i = 0;
        int j = arr.length - 1;

        while (i < j) {
            if (arr[i] != 2) i++;
            if (arr[j] != 2) j--;

            if (arr[i] == 2 && arr[j] == 2) break;
        }

        if (i == j && arr[i] == 2) {
            answer.add(2);
        } else if (i < j) {
            for (int idx = i; idx <= j; idx++) {
                answer.add(arr[idx]);
            }
        } else {
            answer.add(-1);
        }

        return answer;
    }
}

 

 

[프로그래머스] 순서 바꾸기

class Solution {
    public int[] solution(int[] num_list, int n) {
        int[] answer = new int[num_list.length];

        int idxCount = 0;

        for(int i = n; i < num_list.length; i++) answer[idxCount ++] = num_list[i];

        for (int i = 0; i < n; i ++) answer[idxCount++] = num_list[i];

        return answer;
    }
}

 

 

[프로그래머스] 5명씩

import java.util.*;
class Solution {
    public ArrayList<String> solution(String[] names) {
        ArrayList<String> answer = new ArrayList<String>();

        for (int i = 0; i < names.length; i += 5) answer.add(names[i]);

        return answer;
    }
}

 

 

[프로그래머스] 할 일 목록

import java.util.*;
class Solution {
    public ArrayList<String> solution(String[] todo_list, boolean[] finished) {
        ArrayList<String> answer = new ArrayList<String>();

        for (int i = 0; i < todo_list.length; i++) if (!finished[i]) answer.add(todo_list[i]);

        return answer;
    }
}

 

 

[프로그래머스] 원하는 문자열 찾기

class Solution {
    public int solution(String myString, String pat) {
        myString = myString.toLowerCase();
        pat = pat.toLowerCase();

        if (myString.contains(pat)) return 1;

        return 0;
    }
}

 

 

[프로그래머스] 특정한 문자를 대문자로 바꾸기

class Solution {
    public StringBuffer solution(String my_string, String alp) {
        StringBuffer answer = new StringBuffer();

        for (int i = 0; i < my_string.length(); i++) {
            String tempString = String.valueOf(my_string.charAt(i));

            if (tempString.equals(alp)) {
                answer.append(tempString.toUpperCase());
            } else {
                answer.append(tempString);
            }
        }

        return answer;
    }
}

 

 

[프로그래머스] 문자열이 몇 번 등장하는지 세기

class Solution {
    public int solution(String myString, String pat) {
        int answer = 0;

        for (int i = 0; i <= myString.length() - pat.length(); i++) {
            if (myString.substring(i, i+pat.length()).equals(pat)) answer += 1;
        }

        return answer;
    }
}

 

 

[프로그래머스] 공백으로 구분하기 2

import java.util.*;
class Solution {
    public ArrayList<String> solution(String myString) {
        ArrayList<String> answer = new ArrayList<String>();
        String[] stringA = myString.split("x");
        Arrays.sort(stringA);

        for (String s : stringA) {
            if (!s.equals("")) answer.add(s);
        }
        return answer;
    }
}

'알고리즘 > 알고리즘 설명' 카테고리의 다른 글

20230801 [Java] 문제풀이  (0) 2023.08.01
20230731 [Java] 문제풀이  (0) 2023.07.31
20230725 [Java] 문제풀이  (0) 2023.07.25
20230720 [Java] 문제풀이  (0) 2023.07.20
20230719 [Java] 문제풀이  (0) 2023.07.19