9번

nacSeo (낙서)·2022년 11월 29일
0

DailyCoding

목록 보기
9/28

문자열을 입력받아
'a'로 시작해서 'b'로 끝나는 길이 5의 문자열과 'b'로 시작해서 'a'로 끝나는 길이 5의 문자열이 존재하는지 여부를 boolean 타입으로 반환하는 문제였다.

우선, 주의사항에서 대소문자를 따로 구분하지 않는다하여 주어진 문자열을 소문자로 통일시키는 toLowerCase()함수를 사용했고, for문을 이용해 index 0부터 문자열의 길이까지 돌려주면서 charAt(i)=a로 시작해 charAt(i+4)=b로 끝나거나 charAt(i)=b로 시작해 charAt(i+4)=a로 끝난다면 true를 리턴해주는 함수를 작성하였다. 길이가 5인 문자열이기 때문에 뒤쪽 charAt안의 인자에는 i+4!

이렇게 실행하였더니 테스트케이스 중에서 java.lang.StringIndexOutOfBoundsException 오류가 발생하는 결과값도 나왔다. 해당 오류결과를 바탕으로 문자열 길이가 초과되는 경우가 발생한다고 생각하여 for문을 index 0부터 문자열의 길이 - 4까지만 돌려주는 것으로 변경하였다! (우리가 구하는 건 길이가 5인 문자열이므로) 실행시켜보니 무사히 다 통과 :)

제출하고 레퍼런스 코드를 보니 index 0부터가 아니라 4부터 시작해서 문자열의 길이까지 돌려주는 for문이 작성되어 있었다. 앞이든 뒤든 4만큼 잘라주는 건 같기에 나름 잘 푼 것 같다 ✍️

profile
백엔드 개발자 김창하입니다 🙇‍♂️

0개의 댓글