프로그래머스/Lv. 0(코딩 기초 트레이닝)

[프로그래머스 코딩테스트] 원하는 문자열 찾기(Java)

Sigfriede 2023. 5. 10. 01:10

  문제 설명

  알파벳으로 이루어진 문자열 myString과 pat이 주어집니다. myString의 연속된 부분 문자열 중 pat이 존재하면 1 그렇지 않으면 0을 return 하는 solution 함수를 완성해 주세요.

  단, 알파벳 대문자와 소문자는 구분하지 않습니다.

 

  제한사항

  • 1 <= myString의 길이 <= 100,000
  • 1 <= pat의 길이 <= 30
  • myString과 pat은 모두 알파벳으로 이루어진 문자열입니다.

 

  입출력 예

myString pat return
"AbCdEfG" "aBc" 1
"aaAA" "aaaaa" 0
class Solution {
    public int solution(String myString, String pat) {
        int answer = 0;
        myString = myString.toLowerCase();
        pat = pat.toLowerCase();
        if (myString.contains(pat)) {
            answer = 1;
        }
        return answer;
    }
}

  contains는 대소문자를 구분하는 메소드이기 때문에 소문자 혹은 대문자로 통일하는 과정이 필요합니다. 따라서 myString과 pat을 모두 toLowerCase 메소드를 이용하여 소문자로 바꿔주었습니다. 이는 문자열을 대소문자 구분이 없어지도록 통일하는 과정일 뿐이므로, toUpperCase를 이용하여 대문자로 변경하여도 무방합니다.

  contains 메소드를 이용하여 myString 문자열에 pat 문자열이 포함되어 있는지 확인합니다. 만약 조건을 충족한다면 answer에 1을 할당합니다. answer는 0으로 초기화 되었으므로 조건에 해당하지 않는다면 0을 반환할 것입니다.