[문제풀이] 01-04. 단어 뒤집기

𝒄𝒉𝒂𝒏𝒎𝒊𝒏·2023년 10월 24일
0

인프런, 자바(Java) 알고리즘 문제풀이

String(문자열) 다루기 - 0104. 단어 뒤집기


🗒️ 문제


🎈 나의 풀이

	public static String solution(String str) {
        char[] strArr = str.toCharArray();
        str = "";

        for(int j=1; j<strArr.length + 1; j++) {
            str += strArr[strArr.length - j];
        }

        return str;
    }

    public static void main(String[] args) {
        Scanner sc = new Scanner(System.in);
        int n = Integer.parseInt(sc.nextLine());

        for(int i=0; i<n; i++) {
            String str = sc.nextLine();
            System.out.println(solution(str));
        }
    }


🖍️ 강의 풀이

    public static String solution(String str) {
        return new StringBuilder(str).reverse().toString();
    }

    public static void main(String[] args) {
        Scanner sc = new Scanner(System.in);
        int n = Integer.parseInt(sc.nextLine());

        for(int i=0; i<n; i++) {
            String str = sc.nextLine();
            System.out.println(solution(str));
        }
    }


💬 짚어가기

나의 풀이의 경우 문자열을 문자로 변환 후 배열을 뒤에서부터 접근하도록 하였다.
지금 생각해보니 배열로 바꾸지 않고 charAt() 메소드를 이용하면 코드를 더욱
간결하게 작성할 수 있을 것 같다.


강의에서는 StirngBuilder 클래스의 reverse() 메소드를 이용하였다.

new StringBuilder(str).reverse().toString();
// return 자료형이 String이기 때문에, toString()으로 변환


📌 String & StringBuilder

String 인스턴스는 Immutable한 특징이 있다. 이는 불변을 의미한다.
즉, 처음 선언(생성)한 문자열은 바꿀 수 없으며 내용이 같은 문자열의 경우 하나의
인스턴스를 서로 공유한다.

StringBuilder의 경우 append(), delete() 등의 메소드를 통해 문자열을
수정할 수 있다.

따라서, 문자열의 수정이 많이 발생하는 경우 StringBuilder의 사용이 메모리 사용
측면에서 유리하다.

profile
𝑶𝒏𝒆 𝒅𝒂𝒚 𝒐𝒓 𝒅𝒂𝒚 𝒐𝒏𝒆.

0개의 댓글