문제
문자열을 입력받아 문자열 내에 아래 중 하나가 존재하는지 여부를 리턴해야 합니다.
'a'로 시작해서 'b'로 끝나는 길이 5의 문자열
'b'로 시작해서 'a'로 끝나는 길이 5의 문자열
주의 사항
- 대소문자를 구분하지 않습니다.
- 공백도 한 글자로 취급합니다.
- 'a'와 'b'는 중복해서 등장할 수 있습니다.
public class Solution {
public boolean ABCheck(String str) { // str = AbcdB
// TODO:
if(str.length() == 0) return false;
//풀이법 : 다섯 문자 씩 나눠서 시작 a 와 b로 끝나는지 확인하면 된다.
//문자열 소문자로
String lowerStr = str.toLowerCase(); // abcdb
//다섯문자씩 나눈다.
for(int i=0; i < lowerStr.length()-4; i++){
//a로 시작해서 b로 끝나거나 b로 시작해서 a로 끝나는지 확인하기 위해 charAt 메서드 + 논리연산자를 사용한다.
if((lowerStr.charAt(i) == 'a' && lowerStr.charAt(i+4) == 'b') || lowerStr.charAt(i) == 'b' && lowerStr.charAt(i+4) == 'a'){
return true;
}
}
return false;
}
}
메타인지
처음에는 단순하게 공백 기준으로 배열을 만든 후 첫 인덱스에서 조건을 확인했다.
문제 파악을 꼼꼼히 했어야 했다.
계속 테스트 9개중 6개만 통과해서 고민 끝에 구글링 해본 결과 문제를 잘못 파악하고 있다는 것을 알았다.
문제파악을 꼼꼼히 하자..