자바스크립트 알고리즘 문제풀이 강의를 듣고 정리한 내용입니다.
📋 문제
대문자로 이루어진 영단어가 입력되면 단어에 포함된 '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 |
댓글