<A를 #으로>
: 대문자로 이루어진 영어단어가 입력되면 단어에 포함된 'A'를 모두 '#'으로 바꾸어 출력하는 프로그램을 작성한다.
- 첫 번째 방법부터 알아보자.
먼저 자바스크립트에서 문자열을 for...of문으로 돌리면 하나 하나씩 들어온다는 걸 알아야 한다. 아래 사진은 for...of에서 cosole.log로 출력한 결과다. 그렇기 때문에 이렇게 들어오는 걸 이용하여, if문으로 대문자 A가 들어오면 answer에 #을 넣어서 누적하고, 만약 아니라면 answer에 그 값 그대로 넣어서 누적하면 된다.- 두 번째 방법으로는 정규표현식(replace)을 사용하면 된다.
- 앞 전에 일곱난쟁이에서 얕은 복사에 대해 얘기했었다. 배열은 얕은 복사를 할 시 메모리가 같아서 동일한 값이 나온다고 하였는데, 문자열은 얕은 복사를 하면 메모리가 동일하지 않아서 다른 값이 나온다.
그러니 아래 것으로 예시를 들면, s로 할 거 다 하고 나서 answer에 대입하거나, 아니면 아예 s를 answer에 얕은 복사를 하여 answer로만 하든가 하면 될 거 같다.3. 정답
<script> //첫 번째 방법 function solution(s){ let answer=""; for(let x of s){ if(x=='A') answer+='#'; else answer+=x; } return answer; } let str="BANANA"; console.log(solution(str)); </script>
<script> //두 번째 방법 function solution(s){ let answer=s; answer=answer.replace(/A/g, "#"); return answer; } let str="BANANA"; console.log(solution(str)); </script>
4. 내 코드와 비교 그리고 반성
생각을 좀 깊게 해라. 그리고 미루지 좀 마라.. 15일에 저녁먹고 폰보다가 바로 잔 거 실화냐. 그 덕분에 오늘은 1일 2알고리즘이다.