[프로그래머스 / Python] 문자열이 몇 번 등장하는지 세기

Kun-Woo Kim·2025년 1월 7일

알고리즘 공부

목록 보기
16/24
post-thumbnail

문제 출처

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


문제

문자열 myStringpat이 주어집니다. myString에서 pat이 등장하는 횟수를 return 하는 solution 함수를 완성해 주세요.


내 답안

def solution(myString, pat):
    answer = 0  # 패턴이 등장하는 횟수를 저장할 변수
    # myString을 순회하며 패턴과 일치하는 부분 찾기
    for i in range(len(myString) - len(pat) + 1):
        # 현재 인덱스부터 패턴 길이만큼의 부분 문자열이 패턴과 일치하는지 확인
        if myString[i:i + len(pat)] == pat:
            answer += 1  # 일치하면 카운트 증가
    return answer  # 카운트된 횟수 반환

남의 풀이

def solution(myString, pat):
    answer = 0  # 패턴이 등장하는 횟수를 저장할 변수
    # 문자열을 순회하면서
    for i, x in enumerate(myString):
        # 현재 인덱스에서 시작하는 부분 문자열이 패턴으로 시작하는지 확인
        if myString[i:].startswith(pat):
            answer += 1  # 패턴으로 시작하면 카운트 증가
    return answer  # 카운트된 횟수 반환

결론 및 느낀점

문자열에서 특정 패턴이 몇 번 등장하는지 확인하는 방법으로, 직접 부분 문자열을 추출해서 비교하는 방법을 사용다. 하지만, 남의 풀이를 보고 startswith() 메소드를 이용하면 더 간결하고 이해하기 쉽게 구현할 수 있다는 것을 깨달았다.

profile
안녕하세요, 김건우입니다! 웹과 앱 개발에 열정적인 전문가로, Next.js 14, Node.js, Express, Flutter 등을 활용한 프로젝트를 다룹니다. 제 블로그에서는 개발 여정, 기술 분석, 실용적 코딩 팁을 공유합니다. 창의적인 솔루션을 실제로 적용하는 과정의 통찰도 나눌 예정이니, 궁금한 점이나 상담은 언제든 환영합니다.

0개의 댓글