https://school.programmers.co.kr/learn/courses/30/lessons/181906
문제설명
어떤 문자열에 대해서 접두사는 특정 인덱스까지의 문자열을 의미합니다.
예를 들어, "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는 영소문자로만 이루어져 있습니다.
풀이
여러 방법이 있겠지만
1. 문자열의 앞부분부터 확인한다 (charAt를 사용해도 되겠네유)
2. my_string을 is_prefix만큼 잘라내서 동일한지 확인한다 (만약 길이가 더길다면 0으로 반환)
3. 그냥 메소드를 사용한다.
1번은 자주 사용하기도 했으니까 2번과 3번으로 한번 풀어보겠습니다
2번 my_string을 is_prefix만큼 잘라내서 동일한지 확인한다
class Solution {
public int solution(String my_string, String is_prefix) {
int answer = 0;
int len_prefix = is_prefix.length();
if(len_prefix<=my_string.length()){ //길이가 넘어갈시 실행안함 그럼 0으로 그냥 출력됨
answer = is_prefix.equals( my_string.substring(0, len_prefix) ) ? 1 : 0;
}
return answer;
}
}
일단 if문에서는 길이가 더 길경우에 if문을 실행하지않아 answer를 0으로 초기화 된상황이기때문에 0으로 반환이됩니다.
그후 if문을 실행을하면 substring을 이용하여 문자열을 잘라냅니다 그후 is_prefix와 동일한지 확인하고
동일할경우 삼항연산자로 인해 1을 answer에 저장하고 아닐경우엔 0을 answer에 저장합니다
3번 메소드 사용
class Solution {
public int solution(String my_string, String is_prefix) {
return my_string.startsWith(is_prefix) ? 1: 0;
}
}
startsWith()는 대상 문자열이 특정 문자열로 시작하는지 체크하고 boolean값으로 반환하는 메소드이다
들어간 메소드 정리
boolean String1.startsWith(String2) : 문자열1이 문자열2로 시작하는지 체크한다
boolean String1.equals(String2): 문자열1이 문자열2와 같은지 체크한다.
String String1.substring(int StartIndex, int EndIndex) : 문자열을 StartIndex부터 endIndex앞까지 자른다 endIndex가 없을경우 끝까지 반환한다. ex) "01234".substring(1, 4) → 123
'==4. 프로그래머스 & 코테문제== > Java 문제 풀이' 카테고리의 다른 글
[Java/프로그래머스 LV.0] 코딩 기초 트레이닝/홀수 vs 짝수 (0) | 2024.07.07 |
---|---|
[Java/프로그래머스 LV.0] 코딩 기초 트레이닝/ l로 만들기 (0) | 2024.07.02 |
[Java/프로그래머스 LV.0] 코딩 기초 트레이닝/배열 만들기 2 (0) | 2024.06.08 |
[Java/프로그래머스 LV.1] 연습문제/ 2016년 (0) | 2024.06.07 |
[Java/프로그래머스 LV.1] 연습문제/둘만의 암호 (0) | 2024.06.03 |
댓글