[알고리즘] A를 #으로

전현정·2021년 12월 25일

알고리즘

목록 보기
18/18

🎱문제설명

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

🎱문제이해

  • 정규표현식으로 풀거나 빈 문자열에 조건에 맞는 값을 누적해주는 방식으로 풀 수 있다.

🎱문제풀이 1

  • answer은 빈 문자열
  • for문으로 문자열 탐색이 가능
  • for of문을 이용해 변수 x가 대문자 A인지 하나씩 확인하며
    A 일 경우 #으로 문자열을 누적시켜주며 치환해준다
function solution(word){
	let answer = '' // answer로 출력된 값은 문자열이기때문에 
    for ( let x of word ) {
      if( x === 'A' ) answer += '#';
      	else answer += x;
    }
  return answer;
}
console.log(solution("BANANA")

🎃 주의사항 🎃
answer = '#'과 같이 작성할 경우
answer 변수에 # 하나만 저장하는 것만 반복하게 된다.
빈 문자열에 #을 넣어야할 경우엔 + 연산자를 통해 값을 누적해줘야한다.


🎱문제풀이 2

  • String.replace 메서드 / 정규표현식 사용
  • 문자열은 얉은 복사가 되지 않는다.
  • 배열은 주소 참조가 되는데 문자열은 값이 복사 되는게 아니고 값이 바뀌게 된다.
function solution(s){
 let answer = s;
  answer = answer.replace(/A/.g, '#');
  return answer;
}
let word = "BANANA"
console.log(solution(word))
function solution(s){
> let answer = s;
>  s = s.replace(/A/.g, '#');
    return answer;
}

🎃 주의사항 🎃
s = s.replace 라고 작성해도 answer에는 치환된 문자열이 리턴되지 않는다.
-문자열은 얉은 복사가 되지 않기 때문 !

profile
꾸준하기 위해 기록하는 개발자의 개발 일기

0개의 댓글