[코드카타] 원하는 문자열 찾기

seonyoung·2024년 9월 2일
0

📁 문제

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

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

📁 입출력 예

💡 내가 적은 오답(1)

def solution(myString, pat):
    answer = 0
    
    for i in myString:
        if i == pat:
            answer = 1
        else: 
            answer = 0
    return answe

💡 내가 적은 오답(2)

def solution(myString, pat):
    if pat in myString:
        return 1
    else:
        return 0

  • myString 안에 pat이 존재하는지 확인하기 위해선 for문을 이용해야할줄 알았는데 문자열 내에서 특정 패턴이 존재하는지 확인하는 작업은 문자열의 포함 여부를 확인하는 것이라 필요 없다는 것을 깨닫고 바꾸었음(python의 in연산자를 활용할 수 있음)
  • 그러나 또 오답...

💡 내가 적은 정답

def solution(myString, pat):
    myString = myString.lower() # 문자열을 소문자로 변환하여 대소문자 구분을 없앰
    pat = pat.lower()
    
    if pat in myString:
        return 1
    else:
        return 0

📌 대소문자 구분을 없애는 이유

  • 문자열 검색시 일관성과 정확성을 높이기 위해 대소문자 구분을 없애는게 필요함
    • 사용자의 편의성
    • 문제의 명확성
    • 검색 효율성
    • 정확한 매칭
      → 즉, 사용자 입력의 다양한 형태를 처리하고, 검색 결과의 일관성을 보장하며, 알고리즘을 단순화하기 위해서 필요함
profile
원하는 바를 이루고 싶은 사람입니다.

0개의 댓글