ABCheck

이용만·2023년 3월 20일
0

문제
문자열을 입력받아 문자열 내에 아래 중 하나가 존재하는지 여부를 리턴해야 합니다.
'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개만 통과해서 고민 끝에 구글링 해본 결과 문제를 잘못 파악하고 있다는 것을 알았다.
문제파악을 꼼꼼히 하자..

profile
성장하는 개발자가 되고자 합니다.

0개의 댓글