알고리즘

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

inthyes 2023. 7. 16. 14:46

https://school.programmers.co.kr/learn/courses/30/lessons/181878

 

프로그래머스

코드 중심의 개발자 채용. 스택 기반의 포지션 매칭. 프로그래머스의 개발자 맞춤형 프로필을 등록하고, 나와 기술 궁합이 잘 맞는 기업들을 매칭 받으세요.

programmers.co.kr

 

문제

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

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


소스코드

class Solution {
    public int solution(String myString, String pat) {
        int answer = 0;
        
        myString = myString.toLowerCase();
        pat = pat.toLowerCase();
            for(int i = 0; i <= myString.length()-pat.length(); i++){
            if(myString.substring(i,i+pat.length()).equals(pat)){
                answer += 1;
                break;
            }
        }
        return answer;
    }
}

 

소스코드 설명

1. 기존 문자열들을 모두 소문자로 통일

2. substring을 사용해서 지정된 길이만큼 동일한지 확인후 answer 값 1로 변경

 


다른 사람들의 풀이를 봤는데 contains를 이용할 경우 코드 길이가 아주 간단해진다..

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

나도.. 열심히 해야겠다