[프로그래머스] replaceAll

박경희·2023년 12월 30일

코딩테스트

목록 보기
12/69

문제1 - 특정한 문자를 대문자로 바꾸기

방법2

 public String solution(String my_string, String alp) {
     String answer = "";
        for (int i = 0; i < my_string.length(); i++) {
            char charredAt = my_string.charAt(i);
            if (charredAt == alp.charAt(0)) {
                answer += Character.toUpperCase(charredAt);
            } else {
                answer += charredAt;
            }
        }

        return answer;
    }

방법2

 String a = alp.toUpperCase();
        return my_string.replaceAll( alp, a);
  • replaceAll 메서드:
    첫 번째 인자로 지정된 문자열을 찾아 두 번째 인자로 지정된 문자열로 모두 대체하는 기능을 수행한다.
    이 코드는 my_string에서 alp 문자를 대문자 버전으로 치환하여 결과 문자열을 반환한다.

문제2 - 짝수 홀수 개수

방법1

public int[] solution(int[] num_list) {
        int even = 0;
        int odd = 0;

        for (int num : num_list) {
            if (num % 2 == 0) {
                even++;
            } else {
                odd++;
            }
        }
        return new int[]{even, odd};
    }

방법2

		int[] answer = new int[2];

        for(int i = 0; i < num_list.length; i++)
            answer[num_list[i] % 2]++;

        return answer;

answer[num_list[i] % 2]++ 코드는 배열 answer의 특정 인덱스(0 또는 1)의 값을 증가.
num_list[i] % 2는 각 요소가 짝수인 경우 0을, 홀수인 경우 1을 반환.
따라서 이 연산의 결과에 따라 answer[0] 또는 answer[1] 중 하나가 선택되어 그 값이 1 증가한다.


방법3 - stream

import java.util.Arrays;
import java.util.stream.IntStream;

class Solution {
    public int[] solution(int[] num_list) {
        return IntStream.of((int) Arrays.stream(num_list)
                .filter(i -> i % 2 == 0).count(),
                (int) Arrays.stream(num_list)
                        .filter(i -> i % 2 == 1).count()).toArray();
    }
}

0개의 댓글