프로그래머스 코딩테스트(홀수 vs 짝수, 원하는 문자열 찾기, 문자열 정렬하기 (1))
<홀수 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;
}
}