문제 :
https://school.programmers.co.kr/learn/courses/30/lessons/181864
프로그래머스
코드 중심의 개발자 채용. 스택 기반의 포지션 매칭. 프로그래머스의 개발자 맞춤형 프로필을 등록하고, 나와 기술 궁합이 잘 맞는 기업들을 매칭 받으세요.
programmers.co.kr
틀렸던 해결 방안 :
class Solution {
public int solution(String myString, String pat) {
int answer = 0;
String[] str = myString.split("");
for(int i = 0; i<str.length; i++){
if(str[i].equals("A")){
str[i] = "B";
}else{
str[i] = "A";
}
}
String check = str.toString();
if(check.contains(pat)){
answer = 1;
}
return answer;
}
}
문자열 배열을 하나의 문자열로 변환하려는 경우 자바에서는 .toString()을 이용하여 직접 변환할 수 없다.
toString()은 객체 타입과 해시값이 출력된다.
해결 :
class Solution {
public int solution(String myString, String pat) {
int answer = 0;
String[] str = myString.split("");
for(int i = 0; i<str.length; i++){
if(str[i].equals("A")){
str[i] = "B";
}else{
str[i] = "A";
}
}
String check = String.join("", str);
if(check.contains(pat)){
answer = 1;
}
return answer;
}
}
배열을 하나의 문자열로 합치는 방법
1. String.join("배열의 원소간 연결할 구분 문자", 배열);
- List 컬랙션도 사용할 수 있음
2. Streams API
String str = Arrays.stream(문자 배열 변수). collect(Collectors.joining("구분할 문자"));
stream을 이용하면 붙일 문자의 접두사, 접미사를 추가할 수 있습니다. Collectors.joining의 첫 번째 인자는 구분 문자, 두 번째 인자는 접두사, 세 번째 인자는 접미사입니다.
다른 사람 풀이 :
class Solution {
public int solution(String myString, String pat) {
myString = myString.replace("A", "a").replace("B", "A").replace("a", "B");
return myString.contains(pat) ? 1 : 0;
}
}
'알고리즘 > [프로그래머스] JAVA' 카테고리의 다른 글
[코딩 기초 트레이닝] 세 개의 구분자 (0) | 2024.01.16 |
---|---|
[코딩 기초 트레이닝] rny_string (0) | 2024.01.15 |
[코딩 기초 트레이닝] 간단한 식 계산하기 (0) | 2024.01.14 |
[코딩 기초 트레이닝] 문자열 잘라서 정렬하기 (0) | 2024.01.07 |
[코딩 기초 트레이닝] x 사이의 개수 (0) | 2024.01.07 |