풀이과정
1. 입력받은 문자열을 조작하기 위해서 입력문자열에 대한 StringBuffer의 인스턴스 생성 (초기문자열이라 명명)
2. 출력결과는 초기문자열을 기준으로 앞글자와 뒷글자를 차례대로 출력하는 것입니다.
3. 문자열의 양끝에서 한글자씩 안쪽으로 들어가며 출력하는 것보다 양끝만을 출력 하는 것이 더 쉽기 때문에
출력된 문자는 제거합니다.
예) 문자열 출력
abcdef >> af
bcde >> afbe
cd >> afbecd
> 위 작업은 기존 문자열에 문자가 없을 때까지 지속합니다.
4. 문자의 갯수가 홀수일 경우 앞글자를 삭제한 뒤 삭제할 뒷글자가 없기 때문에 앞글자를 삭제한 후 문자가 없을 시 반복을 끝낼 수 있도록 처리합니다.
- 저장한 문자열을 수정할 수 없는 String 클래스와 달리 메소드를 통해 문자열을 수정할 수 있는 StringBuffer의 특징이 문제해결의 가장 큰 포인트가 되었습니다.
- 반복횟수가 정해져 있지만 조건에 따라 while문이 좀더 효율적이라는 것을 알 수 있었습니다.
StringBuffer
- (instance) deleteCharAt(int index) : 저장된 문자열(인스턴스의 문자열)에서 원하는 위치(index)의 문자를 제거
> 저장된 문자열의 직접적인 변경 가능
<풀이 코드>
/*
* 클래스 이름, main() 메소드 부분 생략
* ...
*/
BufferedReader br = new BufferedReader(new InputStreamReader(System.in));
String input = br.readLine();
StringBuffer strBuffer = new StringBuffer(input);
while(strBuffer.length() != 0) {
System.out.print(strBuffer.charAt(0));
strBuffer.deleteCharAt(0);
if(strBuffer.length() == 0) break;
System.out.print(strBuffer.charAt(strBuffer.length()-1));
strBuffer.deleteCharAt(strBuffer.length()-1);
}
'코딩연습' 카테고리의 다른 글
[코딩연습] 최대 자리곱(구름-3단계) - Error(시간초과) (0) | 2021.06.06 |
---|---|
[코딩연습] 특정 구간의 합 - (구름-3단계) (0) | 2021.05.18 |
[코딩연습] 여름의 대삼각형 (구름 - 1단계) (0) | 2021.05.12 |
[코딩연습]태민이의 취미 (구름-1단계) [통과x] (0) | 2021.05.10 |
고장난 컴퓨터 - level 1(구름, Java) (0) | 2021.05.09 |