[프로그래머스] replace, reverse

박경희·2024년 1월 4일

코딩테스트

목록 보기
18/69

문제1 - 특정 문자 제거하기

풀이1

public static String solution(String my_string, String letter) {
        String answer = "";
        for (int i = 0; i < my_string.length(); i++) {
            char charredAt = my_string.charAt(i);
            if (charredAt != letter.charAt(0)) {
                answer += charredAt;
            }
        }
        return answer;
    }
  • String 클래스의 replace()메서드를 사용하여 더 간단하게 문제를 해결할 수 있다.

풀이2

public static String solution(String my_string, String letter) {
        // replace 사용
        return my_string.replace(letter, "");

replace

  • replace() 메서드는 지정된 문자(또는 문자열)를 다른 문자(또는 문자열)로 대체한다.
  • letter를 빈 문자열로 대체하면 해당 문자가 제거된 효과를 얻을 수 있다.
  • 이 방식은 루프를 사용하지 않고도 직접적으로 letter 문자를 my_string에서 제거할 수 있어 더 효율적이고 간결하다.

문제2 - 문자열 뒤집기

public static String solution(String my_string) {
        StringBuffer stringBuffer = new StringBuffer(my_string);
        return stringBuffer.reverse().toString();
    }

StringBuilder, StringBuffer클래스의 rverse()메서드 사용

  • 바꾸고 싶은 문자열을 이용하여 StringBuilder 또는 StringBuffer 객체를 생성 후에 제공되는 reverse() 메서드를 사용한다.

문제3 - 문자 반복 출력하기

public String solution(String my_string, int n) {

        StringBuilder answer = new StringBuilder();
        
        for (int i = 0; i < my_string.length(); i++) {
            char currentChar = my_string.charAt(i);
            for (int j = 0; j < n; j++) {
                answer.append(currentChar);
            }
        }
        return answer.toString();
    }
  • Java에서는 문자열을 더할 때 StringBuilder를 사용하는 것이 효율적이다.
  • StringBuilder를 사용하는 이유는 문자열을 반복적으로 더할 때 발생하는 메모리 할당과 복사를 최소화하기 위함이다.

0개의 댓글