[프로그래머스] 원하는 문자열 찾기
2024. 4. 1.

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

 

프로그래머스

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

programmers.co.kr

 

 

-두 개의 문자열이 주어지고 이 둘을 비교해볼 필요가 있다.

-pat은 첫번째로 주어진 문자열인 myString의 연속된 부분 문자열이다.

=> pat에 myString에 포함된 문자열과 똑같은 문자열들이 있더라도 연속적이지 않으면 조건을 충족시킨다고 볼 수 없다.

=> 예를 들어, abcDEPO가 myString일때 pat이 abc라면 1을 return, aD라면 0을 return 한다.

 

 

풀이)

문자열 검색에 사용되는 메서드들을 정리해 보았다.

 

문자열 검색에 사용 되는 메서드

1. IndexOf()

2. LastIndexOf()

3. Contains()

 

Contains() - 문자열을 포함하고 있는지 검사하는 메서드

Contains()

=>지정한 문자냐, 문자열이냐에 따라 Char,String으로 나뉜다.

=> 지정된 문자(열)을 포함하고 있으면 true, 포함하고 있지 않으면 false 반환

=> StringComparison 인수를 사용해 대소문자의 구분 없이 비교할 수 있다.

=> StringComparison.CurrentCultureIgnoreCase : 현재 문화권의 정렬 규칙을 사용해 비교하고, 대/소문자를 무시해 문자열을 비교한다.

StringComparison

 

using System;

public class Solution {
    public int solution(string myString, string pat) {
        int answer = 0;          
            if(myString.Contains(pat,StringComparison.CurrentCultureIgnoreCase))
            //if(myString.ToUpper().Contains(pat.ToUpper()))
            {
          answer = 1;
             }
            else{
                answer = 0;
            }    
        return answer;
    }
}

 

=> 주석 처리된 부분과 같이 풀어도 상관없다. ToUpper를 사용해 대소문자를 통일해주는 방법이다.

=> ToUpper()는 대문자로 통일한다. 따라서 만약 소문자로 통일하고 싶다면 ToLower()를 사용하면 된다.

 

다른 풀이)

IndexOf() 메서드는 해당하는 문자열이 없으면 '-1'을 반환한다.

public class Solution {
    public int solution(string myString, string pat) 
    {
        return myString.ToUpper().IndexOf(pat.ToUpper()) == -1 ? 0 : 1;
    }
}

 

 

 

 

myoskin