본문 바로가기

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

231205 프로그래머스 코딩테스트 자바 Lv.0

배열 만들기1

public int[] solution(int n, int k) {
        int[] answer = new int[n/k];
        int j = 0;
        for(int i = 1;i <= n/k ; i++){
            answer[j] = i * k;
            j++;
        }
        return answer;
    }

 

부분 문자열인지 확인하기

 public int solution(String my_string, String target) {
        int answer = 0;
        if (my_string.contains(target)){
            answer = 1;
        }
        return answer;
    }

 

접미사인지 확인하기

public int solution(String my_string, String is_suffix) {
        int answer = 0;
        for (int i = 0;i < my_string.length();i++){
            if (my_string.substring(i).equals(is_suffix)){
                answer = 1;
            }
        }
        return answer;
    }

 

뒤에서 5등까지

public int[] solution(int[] num_list) {
        int[] answer = new int[5];
        int[] a = new int[num_list.length];
        int z = 0;
        for (int i = 1 ; i <= 100 ; i++){
            for (int j = 0 ; j < num_list.length;j++){
                if (i == num_list[j]){
                    a[z] = num_list[j];
                    z++;
                }
            }
        }
        for (int i = 0 ; i < 5 ; i++){
            answer[i] = a[i];
        }
        return answer;
    }

 

sort() 함수를 이용하여 배열을 정렬할 수 있음 -> 정렬해서 앞 5개의 배열 저장하면 쉽게 가능

 

A 강조하기

public String solution(String myString) {
        String answer = "";
        // answer = myString.toLowerCase();
        myString = myString.toLowerCase(); // 문자열을 전부 소문자로 변환
        for (int i = 0;i<myString.length();i++){
           if (myString.charAt(i) == 'a') { // 글자가 a 일 경우 대문자로 변환
                answer += myString.toUpperCase().charAt(i);
            } else {
                answer += myString.charAt(i); // 아닐 경우 추가
            }
        }
        return answer;
    }

 

홀수 vs 짝수

public int solution(int[] num_list) {
        int answer = 0;
        int answer2 = 0;
        for(int i = 0 ; i < num_list.length;i++){
            if (i % 2 == 0){ // i 의 값이 짝수와 홀수로 나뉘어질 때 값 구별
                answer += num_list[i];
            } else {
                answer2 += num_list[i];
            }
        }
        return answer > answer2 ? answer : answer2;
    }

 

뒤에서 5등 위로

public int[] solution(int[] num_list) {
        int[] answer = new int[num_list.length - 5];
        int j = 0;
        
        Arrays.sort(num_list);
      
        for(int i = 5 ; i < num_list.length ; i++){
            answer[j] += num_list[i];
            j++;
        }
        return answer;
    }

 

왜.. 런타임 오류가 발생하지..

할 일 목록

class Solution {
    public String[] solution(String[] todo_list, boolean[] finished) {
        int count = 0;
        for (boolean b : finished){
            if (b) {
                count++;
            }
        }
        String[] answer = new String[count];
        count = 0;
        for (int i = 0 ; i < finished.length ; i ++) {
            if (!finished[i]){
                answer[count] = todo_list[i];
                count++;
            }
        }
        return answer;
    }
}

 

주사위 게임1

public int solution(int a, int b) {
        int answer = 0;
        int aa = a % 2;
        int bb = b % 2;
        
        if (aa == 1 && bb == 1){
            answer = (a*a) + (b*b);
        } else if (aa == 1 || bb == 1){
            answer = 2 * (a + b);
        } else {
            if(b > a){
                int i = b;
                b = a;
                a = i;
                answer = a-b;
            } else {
                answer = a-b;
            }
        }
        return answer;
    }

 

가까운 1 찾기

public int solution(int[] arr, int idx) {
        int answer = 0;
        
        for (int i = idx; i < arr.length; i++){
            if (arr[i] == 1){
                answer = i;
                break;
            } else {
                answer = -1; 
            }
        }
        return answer;
    }

 

원하는 문자열 찾기

public int solution(String myString, String pat) {
        int answer = 0;
        myString = myString.toUpperCase();
        pat = pat.toUpperCase();
        
        if (myString.contains(pat)){
            answer = 1;
        } else {
            answer = 0;
        }
        return answer;
    }

 

꼬리 문자열

public String solution(String[] str_list, String ex) {
        String answer = "";
        for (String s : str_list){
            if(s.contains(ex)){
                continue;
            } else {
                answer += s;
            }
        }
        return answer;
    }

 

공백으로 구분하기

public String[] solution(String my_string) {
        String[] answer = my_string.split(" "); // 공백을 기준으로 문자열 나누어 배열로 저장
        return answer;
    }

 

부분 문자열

public int solution(String str1, String str2) {
        int answer = 0;
        answer = str2.contains(str1) ? 1 : 0;
        return answer;
    }

 

L 로 만들기

public String solution(String myString) {
        String answer = "";
        for (int i = 0; i < myString.length(); i++){
            if (myString.charAt(i) <= 108){ // 소문자 L 의 ASCII CODE 값
                answer += "l"; // L 임
            } else {
                answer += myString.charAt(i);
            }
        }
        return answer;
    }

 

접미사 배열

public String[] solution(String my_string) {
        String[] answer = new String[my_string.length()];
        for (int i = 0; i < my_string.length(); i++){
            answer[i] = my_string.substring(i);
        }
        Arrays.sort(answer);
        return answer;
    }

 

ad 제거하기

public String[] solution(String[] strArr) {
        int count = 0;
        for (String s : strArr){
            if (s.contains("ad")){
                continue;
            } else {
                count++;
            }
        }
        String[] answer = new String[count];
        count = 0;
        for (String s : strArr){
            if (s.contains("ad")){
                continue;
            } else {
                answer[count] = s;
                count++;
            }
        }
        return answer;
    }

 

0 떼기

public String solution(String n_str) {
        String answer = "";
        
        for(int i = 0 ; i < n_str.length() ; i++)
            if (n_str.charAt(i) != 48){
                answer = n_str.substring(i);
                break;
            } else if (n_str.charAt(i) == 48){
                continue;
            }
        return answer;
    }

 

0 떼기 더 쉽게

public String solution(String n_str) {
        String answer = "";
        answer += Integer.parseInt(n_str); // 숫자로 만들면 좌측 0 은 다 사라짐
        return answer;
    }