코딩테스트

프로그래머스 코딩테스트(홀수 vs 짝수, 원하는 문자열 찾기, 문자열 정렬하기 (1))

SOME코딩 2023. 5. 3. 23:12

<홀수 vs 짝수>

문제 설명
정수 리스트 num_list가 주어집니다. 가장 첫 번째 원소를 1번 원소라고 할 때, 홀수 번째 원소들의 합과 짝수 번째 원소들의 합 중 큰 값을 return 하도록 solution 함수를 완성해주세요. 두 값이 같을 경우 그 값을 return합니다.

풀이

class Solution {
    public int solution(int[] num_list) {
        int answer = 0;
        int odd = 0;
        for(int i=0;i<num_list.length;i++){
            if((i+1)%2==1){
                odd+=num_list[i];
            } else
                answer += num_list[i];
        }
        return odd>=answer?odd:answer;
    }
}

 

<원하는 문자열 찾기>

문제 설명
알파벳으로 이루어진 문자열 myString과 pat이 주어집니다. myString의 연속된 부분 문자열 중 pat이 존재하면 1을 그렇지 않으면 0을 return 하는 solution 함수를 완성해 주세요.

단, 알파벳 대문자와 소문자는 구분하지 않습니다.

 

풀이

class Solution {
    public int solution(String myString, String pat) {
        return myString.toUpperCase().contains(pat.toUpperCase())?1:0;
    }
}

 

다른 사람 풀이

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

        if (str.indexOf(str2) != -1) {
            return 1;
        }
        return 0;
    }
}

 

<문자열 정렬하기 (1)>

문제 설명
문자열 my_string이 매개변수로 주어질 때, my_string 안에 있는 숫자만 골라 오름차순 정렬한 리스트를 return 하도록 solution 함수를 작성해보세요.

 

풀이

import java.util.Arrays;

class Solution {
    public int[] solution(String my_string) {;
        String str = "";
        int num = 0;
        for(int i=0;i<my_string.length();i++){
            if('0'<=my_string.charAt(i)&&my_string.charAt(i)<='9'){
                num++;
                str += my_string.charAt(i);
            }
        }
        int[] answer = new int[num]; 
        for(int j=0;j<num;j++){
            answer[j] = str.charAt(j)-'0';
        }
        Arrays.sort(answer);
        return answer;
    }
}

 

다른 사람 풀이

import java.util.*;

class Solution {
    public int[] solution(String my_string) {

        my_string = my_string.replaceAll("[a-z]","");

        int[] answer = new int[my_string.length()];

        for(int i =0; i<my_string.length(); i++){
            answer[i] = my_string.charAt(i) - '0';
        }

        Arrays.sort(answer);

        return answer;
    }
}