2021/12/16) 9. A를 #으로

굥굥이·2021년 12월 16일
0
post-thumbnail

1. 문제

<A를 #으로>
: 대문자로 이루어진 영어단어가 입력되면 단어에 포함된 'A'를 모두 '#'으로 바꾸어 출력하는 프로그램을 작성한다.

2. 해결 방법

  1. 첫 번째 방법부터 알아보자.
    먼저 자바스크립트에서 문자열을 for...of문으로 돌리면 하나 하나씩 들어온다는 걸 알아야 한다. 아래 사진은 for...of에서 cosole.log로 출력한 결과다. 그렇기 때문에 이렇게 들어오는 걸 이용하여, if문으로 대문자 A가 들어오면 answer에 #을 넣어서 누적하고, 만약 아니라면 answer에 그 값 그대로 넣어서 누적하면 된다.
  2. 두 번째 방법으로는 정규표현식(replace)을 사용하면 된다.
  3. 앞 전에 일곱난쟁이에서 얕은 복사에 대해 얘기했었다. 배열은 얕은 복사를 할 시 메모리가 같아서 동일한 값이 나온다고 하였는데, 문자열은 얕은 복사를 하면 메모리가 동일하지 않아서 다른 값이 나온다.
    그러니 아래 것으로 예시를 들면, 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알고리즘이다.

profile
아자아자 파이띵굥!

0개의 댓글