728x90
반응형
SMALL
문제 설명
문자 "A"와 "B"로 이루어진 문자열 myString과 pat가 주어집니다. myString의 "A"를 "B"로, "B"를 "A"로 바꾼 문자열의 연속하는 부분 문자열 중 pat이 있으면 1을 아니면 0을 return 하는 solution 함수를 완성하세요.
제한사항
- 1 ≤ myString ≤ 100
- 1 ≤ pat ≤ 10
- myString과 pat는 문자 "A"와 "B"로만 이루어진 문자열입니다.
입출력 예
myString pat result
"ABBAA" | "AABB" | 1 |
"ABAB" | "ABAB" | 0 |
입출력 예 설명
입출력 예 #1
- "ABBAA"에서 "A"와 "B"를 서로 바꾸면 "BAABB"입니다. 여기에는 부분문자열 "AABB"가 있기 때문에 1을 return 합니다.
입출력 예 #2
- "ABAB"에서 "A"와 "B"를 서로 바꾸면 "BABA"입니다. 여기에는 부분문자열 "BABA"가 없기 때문에 0을 return 합니다.
package Lv0;
public class H181864 {
public int solution(String myString, String pat) {
int answer = 0;
StringBuilder sb = new StringBuilder();
// myString의 문자를 순회하며 "A"를 "B"로, "B"를 "A"로 바꾼 문자열을 생성합니다.
for (char ch : myString.toCharArray()) {
if (ch == 'A') {
sb.append('B');
} else if (ch == 'B'){
sb.append('A');
}
}
String swappedString = sb.toString();
// 생성된 문자열의 모든 가능한 부분 문자열에 대해 반복문을 수행하며,
// 각 부분 문자열이 pat와 같은지 확인합니다.
for (int i = 0; i <= swappedString.length() - pat.length(); i++) {
String substring = swappedString.substring(i, i + pat.length());
if (substring.equals(pat)) {
answer = 1;
break;
}
}
return answer;
}
}
문자열 myString의 각 문자를 순회하며 "A"를 "B"로, "B"를 "A"로 바꾼 새로운 문자열을 생성
그런 다음 생성된 문자열에서 pat과 같은 부분 문자열이 있는지 확인하고, 찾으면 answer 값을 1로 변경
만약 찾지 못하면 기본값인 0을 반환
728x90
반응형
LIST
'알고리즘 > 프로그래머스 JAVA LV.0' 카테고리의 다른 글
배열의 원소만큼 추가하기 (0) | 2023.05.03 |
---|---|
접미사인지 확인하기 (0) | 2023.05.03 |
원하는 문자열 찾기 (0) | 2023.05.03 |
접두사인지 확인하기 (0) | 2023.05.03 |
배열에서 문자열 대소문자 변환하기 (0) | 2023.05.02 |