programmers Day12

Hwani·2024년 5월 17일

프로그래머스 DAY 1~25

목록 보기
12/51

문제 - 모음 제거

풀이

class Solution {
    public String solution(String my_string) {
        StringBuilder sb = new StringBuilder();
        
        for (char ch : my_string.toCharArray()) {
            if (ch != 'a' && ch != 'e' && ch != 'i' && ch != 'o' && ch != 'u') {
                sb.append(ch);
            }
        }
        
        return sb.toString();
        
    }
}

다른 풀이 - 모음에 해당하는 문자를 빈 칸으로 대체한다.
return myString.replaceAll("a|e|i|o|u", "");

문제 - 문자열 정렬하기(1)

풀이

import java.util.*;

class Solution {
    public int[] solution(String my_string) {
        my_string = my_string.replaceAll("[a-zA-Z]", ""); 
        
        String[] arr = my_string.split("");
        int[] answer = new int[arr.length];
        
        for (int i = 0; i < arr.length; i++) {
        	answer[i] = Integer.parseInt(arr[i]);
		}
        Arrays.sort(answer);
        
    	return answer;
    }
}

설명

  • my_string에 담긴 영어를 모두 ""으로 대체한다.
  • 대체된 값을 arr 배열에 담는다.
  • 남아있는 문자열을 answer 배열에 담고 int 타입으로 변환한다.
  • answer 배열을 정렬하고 그 값을 리턴한다.

문제 - 숨어있는 숫자의 덧셈(1)

풀이

import java.util.Arrays;

class Solution {
    public int solution(String my_string) {
        int answer = 0;
        my_string = my_string.replaceAll("[a-zA-Z]", "");

        String[] arr = my_string.split("");
        String number = Arrays.toString(arr);

        for (String num : arr) {
            answer += Integer.parseInt(num);
        }

        return answer;
    }
}

설명

  • 영어를 빈 칸으로 대체한다.
  • 남아있는 값을 number에 저장한다.
  • for 문으로 남아있는 값을 int로 변환하여 answer에 저장 후 리턴한다.

문제 - 소인수분해

풀이

import java.util.*;

class Solution {
    public int[] solution(int n) {
        ArrayList<Integer> tmpList = new ArrayList<>();
        
        for(int i = 2; i <= n; i++) {
            if(n % i == 0) {
                while(n % i == 0) {
                    n /= i;
                }
                tmpList.add(i);
            }
        }
        
        int[] answer = new int[tmpList.size()];
        
        for(int i = 0; i < answer.length; i++) {
            answer[i] = tmpList.get(i);
        }
        
        return answer;
    }
}

설명

  • i를 1부터 시작하면 무한 반복하기 때문에 2부터 시작한다.
  • if 문은 나눴을 때 바로 0이 나오면 소수이기 때문에 바로 tmpList에 추가한다.
  • while 문으로 나머지가 0이 나올 때까지 반복하고 그 값을 tmpList에 추가한다.
  • 그 tmpList의 값을 answer 배열에 추가하여 리턴한다.
profile
개발자될거야

0개의 댓글