[코딩테스트연습] 코딩테스트 입문> Lv.0 문자열 뒤집기

2024. 3. 7. 09:38코딩 테스트/[프로그래머스] Java

 

 

문제 설명


문제 풀이

갑자기 문자열을 인덱스로 가져올 수 있을 것이라는 파이썬같은 생각을 떠올려버렸다.

그래서 my_string[i]로 접근했는데 오류가 나와서 당황했다...

class Solution {
    public String solution(String my_string) {
        String answer = "";
        System.out.println(my_string[0]);
        return answer;
    }
}
/Solution.java:4: error: array required, but String found
        System.out.println(my_string[0]);
                                    ^
1 error

 

 

그렇다면 String은 어떤 방식으로 한 글자씩 접근할 수 있을까?

바로 String 클래스에서 제공하는 charAt 함수가 있다.

이는 원하는 index를 입력하면, 해당 index 위치에 있는 char를 가져오도록 하는 함수이다.

이를 활용해서 다시 한번 코드를 작성해 보았다.

class Solution {
    public String solution(String my_string) {
        String answer = "";
        for(int i=0; i<my_string.length(); i++){
            answer += my_string.charAt(my_string.length()-i-1);
        }
        return answer;
    }
}

 

이번에는 성공이다!

하지만 +1점밖에 못받아서 아쉽다... 다른 사람들은 어떻게 풀이 했는지 확인해 보았다.

그 중 처음 눈에 띈 것은 바로 이것이다.

StringBuilder sb = new StringBuilder();

 

처음 본 객체이지만, 사용 코드를 확인해보니 되게 간단한 메소드들이 포함되어 있는 것 같다!

이 부분에 대해서는 다른 포스트로 더 자세하게 공부하는 것이 좋을 것 같다. (살짝 구글링 해봤는데 메모리 관련해서 더 자세하게 남겨두고 싶어서...!)