
내가 생각했을때 문제에서 원하는부분
어떤 문자열에 대해서 접두사는 특정 인덱스까지의 문자열을 의미합니다.
예를 들어, "banana"의 모든 접두사는 "b", "ba", "ban", "bana", "banan", "banana"입니다.
문자열 my_string과 is_prefix가 주어질 때, is_prefix가 my_string의 접두사라면 1을, 아니면 0을 return 하는 solution 함수를 작성해 주세요.
내가 이 문제를 보고 생각해본 부분
이 코드는 주어진 문자열 my_string이 다른 문자열 is_prefix의 접두사인지 판단하는 기능을 수행한다.
함수 solution은 두 문자열을 인자로 받아, is_prefix가 my_string의 첫 부분부터 일치하는지 검사한다.
먼저, my_string과 is_prefix의 길이를 비교하여 my_string이 더 짧으면 접두사가 될 수 없으므로 0을 반환한다.
그렇지 않으면 my_string의 처음부터 is_prefix 길이만큼 자른 부분과 is_prefix가 같은 문자열인지 equals 메서드를 통해 비교한다.
만약 두 문자열이 같으면 1을 반환해 접두사임을 알리고, 다르면 0을 반환한다.
main 메서드에서는 여러 가지 테스트 케이스를 출력하여 함수의 동작을 즉시 확인할 수 있도록 하였다.
예를 들어, "banana"와 "ban"은 접두사가 맞으므로 1이 출력되고, "banana"와 "nan"은 접두사가 아니므로 0이 출력된다.
코드로 구현
class Solution {
public int solution(String my_string, String is_prefix) {
if (my_string.length() < is_prefix.length()) {
return 0;
}
if (my_string.substring(0, is_prefix.length()).equals(is_prefix)) {
return 1;
}
return 0;
}
}
프로그래머스 코드
package programmers;
// 프로그래머스 접두사인지 확인하기
public class Main39 {
public static int solution(String my_string, String is_prefix) {
if (my_string.length() < is_prefix.length()) {
return 0;
}
if (my_string.substring(0, is_prefix.length()).equals(is_prefix)) {
return 1;
}
return 0;
}
public static void main(String[] args) {
// 테스트 케이스 예시
System.out.println(solution("banana", "ban")); // 1 출력
System.out.println(solution("banana", "nan")); // 0 출력
System.out.println(solution("banana", "abcd")); // 0 출력
System.out.println(solution("banana", "bananan")); // 0 출력
}
}
위에 있는 코드를 변경한 코드
코드와 설명이 부족할수 있습니다. 코드를 보시고 문제가 있거나 코드 개선이 필요한 부분이 있다면 댓글로 말해주시면 감사한 마음으로 참고해 코드를 수정 하겠습니다.