본문 바로가기
Algorithm/JavaScript

[basics] A를 #으로

by _sweep 2021. 12. 5.

자바스크립트 알고리즘 문제풀이 강의를 듣고 정리한 내용입니다.

 

 

 

 

📋 문제

대문자로 이루어진 영단어가 입력되면 단어에 포함된 'A'를 모두 '#'으로 바꾸어 출력한다.

 

 

👉 입력

첫번째 줄에 문자열이 입력된다.

 

 

👈 출력

첫번째 줄에 바뀐 단어를 출력한다.

 

 

💡 사용된 개념

String.replace()

어떤 패턴에 일치하는 일부 또는 모든 부분이 교체된 새로운 문자열을 반환한다.

패턴은 문자열이나 정규식이 될 수 있다.

 

RegExp

  • ignoreCase(i) : 문자열의 대소문자를 구분하지 않는다.
  • global(g) : 정규표현식이 문자열 내에서 가능한 모든 경우에 일치하는지 판별한다.

 

더보기

 

 

📝 풀이

 

<script>
    function solution(s) {
        let answer = "";
        for (const a of s) {
            if (a === 'A') answer += '#';
            else answer += a;
        }
        return answer;
    }

    let str = "BANANA";
    console.log(solution(str));
</script>

 

for of문을 통해 주어진 문자열을 순회하며 answer에 한 글자씩 추가해 나가다 'A'라는 문자를 만나면 '#'을 추가한다.

순회가 끝나면 answer를 출력한다.

 

다른 방법으로는 String.replace()를 사용하는 방법이 있다.

 

<script>
    function solution(s) {
        let answer = "";
        answer = s.replace(/A/ig, "#")
        return answer;
    }

    let str = "BANANA";
    console.log(solution(str));
</script>

 

String.replace()를 사용해 'A'라는 문자를 '#'으로 바꾼다. 이때 옵션으로 i와 g를 주었다.

사실 입력이 모두 대문자이기 때문에 대소문자를 구별하지 않는다는 i 옵션은 필요없지만 g 옵션은 주지 않으면 첫번째 'A'만 '#'으로 바뀌고 나머지는 바뀌지 않는다.

 

 

 

 

'Algorithm > JavaScript' 카테고리의 다른 글

[basics] 대문자 찾기  (0) 2021.12.05
[basics] 문자 찾기  (0) 2021.12.05
[basics] 일곱 난쟁이  (0) 2021.12.05
[basics] 10부제  (0) 2021.12.05
[basics] 홀수 합과 최솟값  (0) 2021.12.05

댓글