inblog logo
|
jjack1
    Java프로그래머스코딩테스트

    [프로그래머스] 110. 부분 문자열인지 확인하기

    최재원's avatar
    최재원
    Jul 18, 2026
    [프로그래머스] 110. 부분 문자열인지 확인하기
    💡

    문제 설명

    부분 문자열이란 문자열에서 연속된 일부분에 해당하는 문자열을 의미합니다. 예를 들어, 문자열 "ana", "ban", "anana", "banana", "n"는 모두 문자열 "banana"의 부분 문자열이지만, "aaa", "bnana", "wxyz"는 모두 "banana"의 부분 문자열이 아닙니다.
    문자열 my_string과 target이 매개변수로 주어질 때, target이 문자열 my_string의 부분 문자열이라면 1을, 아니라면 0을 return 하는 solution 함수를 작성해 주세요.
    💡

    제한사항

    • 1 ≤ my_string의 길이 ≤ 100
    • my_string은 영소문자로만 이루어져 있습니다.
    • 1 ≤ target의 길이 ≤ 100
    • target은 영소문자로만 이루어져 있습니다.

    입출력 예

    my_string
    target
    result
    "banana"
    "ana"
    1
    "banana"
    "wxyz"
    0

    입출력 예 설명

    입출력 예 #1
    • 문제 설명과 같습니다.
    입출력 예 #2
    • 문제 설명과 같습니다.
     

    코드

    class Solution { public int solution(String my_string, String target) { return my_string.contains(target) ? 1 : 0; } }
    • 자바 문자열의 contains 함수 사용
    notion image
     

    코드 - 원시적은 반복문

    class Solution { public int solution(String my_string, String target) { int myLen = my_string.length(); int tarLen = target.length(); for (int i = 0; i <= myLen - tarLen; i++) { boolean match = true; for (int j = 0; j < tarLen; j++) { if (my_string.charAt(i + j) != target.charAt(j)) { match = false; break; } } if (match) return 1; } return 0; } }
    notion image
    단계별로 "banana"에서 "ana" 찾는 과정입니다:
    i=0 : b a n vs a n a → b≠a 불일치 i=1 : a n a vs a n a → 일치! → return 1
    코드 흐름:
    1. i — my_string의 시작 위치를 이동
    1. j — target과 한 글자씩 비교
    1. i + j — my_string에서 현재 비교할 위치
    1. 불일치 시 match = false 후 break 로 내부 루프 탈출
    1. 내부 루프 끝까지 통과하면 match = true → return 1
    1. 끝까지 못 찾으면 return 0
     
    Share article

    jjack1

    RSS·Powered by Inblog