Algorithm/Programmers 입문

[프로그래머스 코딩기초 트레이닝] 접두사인지 확인하기(JAVA)

JunFe 2023. 11. 7. 09:38
반응형

문제 설명

 

어떤 문자열에 대해서 접두사는 특정 인덱스까지의 문자열을 의미합니다. 예를 들어, "banana"의 모든 접두사는 "b", "ba", "ban", "bana", "banan", "banana"입니다. 문자열 my_string과 is_prefix가 주어질 때, is_prefix가 my_string의 접두사라면 1을, 아니면 0을 return 하는 solution 함수를 작성해 주세요.


제한사항

 

1 ≤ my_string의 길이 ≤ 100

1 ≤ is_prefix의 길이 ≤ 100

my_string과 is_prefix는 영소문자로만 이루어져 있습니다.


입출력 예

my_string is_prefix result
"banana" "ban" 1
"banana" "nan" 0
"banana" "abcd" 0
"banana" "bananan" 0

입출력 예 설명

 

입출력 예 #1

예제 1번에서 is_prefix가 my_string의 접두사이기 때문에 1을 return 합니다.

 

입출력 예 #2

예제 2번에서 is_prefix가 my_string의 접두사가 아니기 때문에 0을 return 합니다.

 

입출력 예 #3

예제 3번에서 is_prefix가 my_string의 접두사가 아니기 때문에 0을 return 합니다.

 

입출력 예 #4

예제 4번에서 is_prefix가 my_string의 접두사가 아니기 때문에 0을 return 합니다.


풀이

 

-> 삼항식을 통해서 is_prefix의 길이가 my_string보다 길다면 my_string의 길이를 length로 잡고, 그외에는 is_prefix의 길이를 length로 잡는다. 그 후 my_string을 index 0부터 length길이 만큼 substring으로 잘라 준 후에 is_prefix와 같은지 비교한다.


코드

 

class Solution {
    public int solution(String my_string, String is_prefix) {
        int answer = 0;
        int length = is_prefix.length()>my_string.length()?my_string.length():is_prefix.length();
        String temp = my_string.substring(0,length);
        if(temp.equals(is_prefix)){
            answer = 1;
        } else {
            answer = 0;
        }
        return answer;
    }
}
반응형