[JS알고리즘] A를 #으로
in Algorithm
A를 모두 #으로 바꾸어 출력하라
function solution(s){
let answer = "";
for(x of s){
if(x == "A") answer += "#";
else answer += x;
}
return answer;
}
let str = "BANANA";
console.log(solution(str))
혹은 2번 솔루션
function solution(s){
let answer = s;
// s = s.replace(/A/g,'#');
answer = answer.replace(/A/g, '#');
return answer;
}
let str = "BANANA";
console.log(solution(str))
2번 솔루션에서
` s = s.replace(/A/,’#’);` 은 첫번째 문자만 변경해준다.
그러니까… B#NANA 이렇게 변경시킨다. 이 값은 원하는 값이 아니고 모든 A를 변환시키고 싶은것이므로
` s = s.replace(/A/g,’#’); 로
g` 를 붙여 전역으로 변경시켜준다
또한 이전 8번 문제에서 얕은 복사를 해서 arr를 answer에 넣으면 arr이 변경될때마다 answer가 변경되었는데
String은 값 그 자체가 들어가는것이지 값이 변경되지 않기 때문(=주소참조, 얕은복사가 아니기 떄문)에 s가 아닌 answer로 넣어주어야 한다
inflearn 자바스크립트 알고리즘 강의 내용 =)