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

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


◽ 배열

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

muaga's Hub