[프로그래머스] Lv.0 문자열 바꿔서 찾기 (String 문자열 변경)
[프로그래머스] Lv.0 문자열 바꿔서 찾기 (String 문자열 변경)
May 15, 2024

답
◽ 배열
import java.util.ArrayList;
import java.util.List;
class Solution {
public int solution(String myString, String pat) {
List<String> strList = new ArrayList<>();
for (int a = 0; a < myString.length(); a++) {
String word = String.valueOf(myString.charAt(a));
String re = word.equals("A") ? "B" : "A";
strList.add(re);
}
String change = String.join("", strList);
int answer = change.contains(pat) ? 1 : 0;
return answer;
}
}
리팩토링
◽ String + String
class Solution {
public int solution(String myString, String pat) {
String change = "";
for (int a = 0; a < myString.length(); a++) {
String word = String.valueOf(myString.charAt(a));
String re = word.equals("A") ? "B" : "A";
change = change + re;
}
int answer = change.contains(pat) ? 1 : 0;
return answer;
}
}
다른 사람의 풀이
◽ replace()
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;
}
}
myString
을 1문자 씩 추출해서 A → B, B → A로 변경했지만, 위의 분은 replace( )를 사용하여 myString
를 변경했다. ❔ A → a
myString = myString.replace("A", "B").replace("B", "A");
➡️ AAAAA
코드는 순서대로 진행되므로 첫 번째 replace에서 A → B가 되면서
“BBBBB”
가 되고, 두 번째 replace에서 B → A가 되면서 “AAAAA”
가 되었다. 그래서 소문자 a
를 사용하여 “ABBAA” 👉 ”BAABB”
가 되도록 했다.❔ replace( )
문자열 내에서 특정 부분의 문자열을 다른 문자열로 치환하게 하는 메소드이다.
string.replace(old word, new word)
String sentence = "I like bananas.";
String newSentence = sentence.replace("bananas", "apples");
➡️ "I like apples."
Share article