• 카테고리

    질문 & 답변
  • 세부 분야

    알고리즘 · 자료구조

  • 해결 여부

    미해결

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

21.04.17 02:57 작성 조회수 129

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을 이용했는데도 오답이 뜹니다ㅜ 혹시 제가 놓친 부분이 있거나 메모리적으로 좋지 않은 방법이라서 오답인건지 궁금합니다..!

답변 2

·

답변을 작성해보세요.

1

안녕하세요^^

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

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

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

0

마비미님의 프로필

마비미

질문자

2021.04.19

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