[JS알고리즘] A를 #으로



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 자바스크립트 알고리즘 강의 내용 =)




© 2018. by sora

Powered by sora