강의

멘토링

커뮤니티

Inflearn Community Q&A

qjawnswkd07176790's profile image
qjawnswkd07176790

asked

Introduction to Java Algorithm Problem Solving: Coding Test Preparation

5. Reverse Specific Characters (toCharArray())

선생님 오답에 관해서 질문입니다!

Written on

·

287

0

public static String solution(String str) {
        char[] originalWord = str.toCharArray();
        char[] reverseWord = new StringBuilder(str).reverse().toString().toCharArray();

        int length = originalWord.length;
        StringBuilder sb = new StringBuilder();

        for (int i = 0; i < length; i++) {
            if(Character.isAlphabetic(originalWord[i]))
                sb.append(reverseWord[i]);
            else if(!Character.isAlphabetic(originalWord[i]))
                sb.append(originalWord[i]);
        }
        return sb.toString();
    }
    public static void main(String[] args) {
        Scanner scan = new Scanner(System.in);
        String str = scan.next();
        String result = solution(str);
        System.out.println(result);
    }

입력받은 문자열을 char 배열로 뒀고

입력받은 문자열을 reverse 하여 char 배열을 하나 생성한 후

입력받은 문자열에 알파벳이 있으면 StringBuilder에 reverse 배열의 해당 인덱스를 가진 문자를 추가하고

없으면 특수문자라고 인식하여 본래의 입력값 배열에서 해당 인덱스를 가진 문자를 StringBuilder 에 추가하여 작성하였습니다.

처음엔 저런식으로 정규식으로 했는데 오답이 떠서  Character.isAlphabetic을 이용했는데도 오답이 뜹니다ㅜ 혹시 제가 놓친 부분이 있거나 메모리적으로 좋지 않은 방법이라서 오답인건지 궁금합니다..!

java코테 준비 같이 해요!

Answer 2

1

codingcamp님의 프로필 이미지
codingcamp
Instructor

안녕하세요^^

이 방법은 반례가 너무 많습니다.

kj#$stpj 이 입력되면 jp#$tsjk 나와야 합니다.

위에 입력으로 본인 코드를 디버그 해보세요.

0

앗 이 경우를 생각못했네요ㅜ 감사합니다ㅎㅎ

qjawnswkd07176790's profile image
qjawnswkd07176790

asked

Ask a question