Level. 0
문제
문자 "A"와 "B"로 이루어진 문자열 myString과 pat가 주어집니다.
myString의 "A"를 "B"로, "B"를 "A"로 바꾼 문자열의 연속하는 부분 문자열 중 pat이 있으면 1을 아니면 0을 return 하는 solution 함수를 완성하세요.
* 제한사항
- 1 ≤ myString의 길이 ≤ 100
- 1 ≤ pat의 길이 ≤ 10
myString과 pat는 문자 "A"와 "B"로만 이루어진 문자열입니다.
풀이. 1
import java.util.Arrays;
import java.util.stream.*;
class Solution {
public int solution(String myString, String pat) {
for(int i=0; i<myString.length(); i++){
if(myString.charAt(i) == 'A')
str += "B";
else
str += "A";
}
return str.contains(pat)?1:0;
}
}
풀이. 2 - stream
import java.util.Arrays;
import java.util.stream.*;
class Solution {
public int solution(String myString, String pat) {
String str = Arrays.stream(myString.split(""))
.map(i -> i.equals("A")?"B":"A")
.collect(Collectors.joining());
return str.contains(pat)?1:0;
}
}
다른 풀이
import java.util.Arrays;
import java.util.stream.*;
class Solution {
public int solution(String myString, String pat) {
String str = myString.replaceAll("A","a").replaceAll("B","A").replaceAll("a","B");
return str.contains(pat)?1:0;
}
}
replaceAll을 사용한 위의 풀이가 속도면에서 제일 우수했다!
https://school.programmers.co.kr/learn/courses/30/lessons/181864?language=java
'Algorithm > Programers - Java' 카테고리의 다른 글
[프로그래머스(Java)] 접미사 배열 / substring (0) | 2023.12.24 |
---|---|
[프로그래머스(Java)] 특별한 이차원 배열 1 / toArray(int[][]::new) (1) | 2023.12.23 |
[프로그래머스(Java)] A 강조하기 (1) | 2023.12.16 |
[프로그래머스(Java)] 5명씩 (0) | 2023.12.16 |
[프로그래머스(Java)] 문자열 잘라서 정렬하기 / replaceAll(), 정규식, trim(), toArray(String[]::new); (0) | 2023.12.16 |