문제 설명
문자열 배열 array와 문자열 s가 주어집니다.
이때, s의 접두사가 되는 array의 요소의 개수를 출력하는 프로그램을 작성하세요.
여기서 array[i]가 s의 '접두사가 된다'는 것은, 문자열 s가 문자열 array[i]로 시작한다는 의미입니다.
입력 형식
· array : 문자열 배열
· s : 문자열
출력 형식
· s의 접두사가 되는 array의 요소의 개수를 정수로 반환
제약 사항
· 1 <= array.length <= 100
· 1 <= array[i].length <= 100
· array[i]는 알파벳 소문자로 구성된 문자열이다.
· 1 <= s.length <= 100
· s는 알파벳 소문자로 구성된 문자열이다.
입출력 예시
· 입력
· array = {"n", "nav", "nev"}
· s = "naver"
· 출력 : 2
· 설명 : naver의 접두사가 되는 문자열은 n, nav로 총 2개이다.
작성 코드
class Solution245 {
public int solution(String[] array, String s) {
int count = 0;
for (String str : array) {
if (s.startsWith(str)) {
count++;
}
}
return count;
}
public static void main(String[] args) {
Solution245 st = new Solution245();
String[] array = {"n", "nav", "nev", "na"};
String s = "naver";
System.out.println(st.solution(array, s));
}
}
/*
위 코드는 배열 array의 모든 요소에 대해 s의 접두사인지 검사하고,
접두사이면 count를 증가시킨다. 마지막으로 count를 반환한다.
위 코드를 간단히 설명하면, for-each 문을 사용하여 배열 array의 요소를 하나씩 가져온다.
그리고 startsWith() 메소드를 사용하여 문자열 s가 해당 요소로 시작하는지 검사한다.
startsWith() 메소드는 해당 문자열이 인자로 전달된 문자열로 시작하는지 여부를 true 또는 false로 반환한다.
만약 해당 요소로 시작한다면 count를 증가시키고, 마지막으로 count를 반환한다.
*/
정답 코드
class Solution {
public int solution(String[] array, String s) {
int result = 0;
for (String prefix: array) {
if (s.startsWith(prefix)) {
result++;
}
}
return result;
}
public static void main(String[] args) {
Solution st = new Solution();
String[] array = {"n", "nav", "nev", "na"};
String s = "naver";
System.out.println(st.solution(array, s));
}
}
'연습 코딩테스트' 카테고리의 다른 글
연습문제 2-5(2) 배열에서 n이 나타나는 가장 작은 인덱스 (0) | 2023.04.08 |
---|---|
연습문제 2-5(1) 단어가 문장의 몇 번째 단어와 일치하는지 (0) | 2023.04.08 |
연습문제 2-4(4) 조건을 만족하는 a, b의 쌍의 개수 (0) | 2023.04.08 |
연습문제 2-4(3) 문자열 회전에 의한 결과 판단 (0) | 2023.04.08 |
연습문제 2-4(2) 만들 수 있는 숫자 중 K번째로 큰 숫자 (0) | 2023.04.08 |