본문 바로가기
TIL/Java 알고리즘 문제 풀이

23.06.07

by J1-H00N 2023. 6. 7.

문자열을 반대로 출력하는 메서드 만들기

public String solution(String my_string) {
        char[] my_char = my_string.toCharArray();
        for (int i = 0; i < my_char.length; i++) {
            my_char[i] = my_string.charAt(my_char.length -i - 1);
        }
        String answer = new String(my_char);
        return answer;
    }

받은 문자열을 char[]로 변환해 각 글자를 반복문으로 수정하고 다시 string으로 변환해 반환하는 방식을 택했다.

찾아보니 StringBuilder, StringBuffer 등의 reverse 메서드를 사용하면 쉽게 풀 수 있는 문제였다.

그 외에도 각 글자를 ""와 split메서드를 통해 쪼개서 재배열하는 방법도 있었고, 빈 문자열에 my_string의 글자를 하나씩 더해주는 방법도 있었다.

String answer = "";
        String[] arr = my_string.split("");
        for(int i=arr.length-1; i>=0; i--){
            answer += arr[i];
        }
        return answer;

이 방법이 특히 마음에 들었었다. (for반복문에 감소연산자를 사용하는 방법이 신선해서)

 

 

가위(2)바위(0)보(5)를 이기는 문자열을 출력하는 메서드

        String[] rspStrings = rsp.split("");
        String answer = "";
        for (int i = 0; i < rsp.length(); i++) {
            if (rspStrings[i].equals("0")) {
                answer += "5";
            } else if (rspStrings[i].equals("2")) {
                answer += "0";
            } else if (rspStrings[i].equals("5")) {
                answer += "2";
            }
        }
        return answer;
    }

위 문제에서 영감을 얻어 잘 안썼던 메서드인 split을 한 번 써보자 싶어서 사용해봤다.

다른 답안들은 StringBuilder나 stream을 쓴 차이를 빼면 크게 다른 점은 없었던 것 같다.

'TIL > Java 알고리즘 문제 풀이' 카테고리의 다른 글

23.06.18  (2) 2023.06.18
23.06.16  (0) 2023.06.16
23.06.11  (0) 2023.06.11
23.06.05  (0) 2023.06.05
23.06.03  (0) 2023.06.03