인프런 커뮤니티 질문&답변

sojung1221님의 프로필 이미지

작성한 질문수

자바(Java) 알고리즘 문제풀이 입문: 코딩테스트 대비

5. 특정 문자 뒤집기(toCharArray())

안녕하세요! 오답질문입니다.

21.04.22 03:05 작성

·

164

0

안녕하세요.

다음과 같이 solution을 제출했을때 오답이 나옵니다.

여러가지 case들을 시도해봐도 강사님께서 배표해주신 해답 코드와 같은 답을 얻게되는데, 왜 오답인지 이해가 가질 않아서 문의드립니다.

제가 놓친 부분이 무엇일까요? 

import java.util.Scanner;

public class Main {

	public String solution(String str) {
		String answer = "";
		char[] ca = str.toCharArray();
		int rt = ca.length - 1;
		int lt = 0;
		while (lt < rt) {
			char left = ca[lt];
			char right = ca[rt];
			if (!Character.isAlphabetic(left))
				lt++;
			else if (!Character.isAlphabetic(right))
				rt--;
			else {
				char tmp = ca[lt];
				ca[lt] = ca[rt];
				ca[rt] = tmp;
				lt++;
				rt--;
			}
		}
		answer = String.valueOf(ca);
		return answer;
	}

	public static void main(String[] args) {
		Scanner in = new Scanner(System.in);
		String input = in.next();
		Main m = new Main();
		m.solution(input);
	}
}

시도해본 case들:

input: "a#b!GE*T@S" / output: "S#T!EG*b@a"

input: "te$t&%sp" / ouput: "ps$t&%et"

input: "kj#$stpj" / output: "jp#$tsjk"

input: "test&%sp" / output: "psts&%et"

감사합니다.

답변 2

2

wcsjinn님의 프로필 이미지

2021. 04. 22. 09:32

지나가다 한번 테스트 해보고 답글 남깁니다. 제가 보기에는 답 제출 시 System.out.println부분이 없어서 결과 값 도출을 못받아서 그런거 아닐까 예상해봅니다. 

main마지막에 System.out.println(m.solution(input));이렇게 출력하는 부분을 넣어보세요.

1

sojung1221님의 프로필 이미지
sojung1221
질문자

2021. 04. 22. 10:15

아.. 맞네요. 출력부분을 넣으니 해결됬습니다. 감사합니다!