-
프로그래머스 특정 문자열 제거하기(join, push 메서드)Coding Test/프로그래머스 Lv.0 2023. 6. 7. 14:08
https://school.programmers.co.kr/learn/courses/30/lessons/120826
나의풀이
function solution(my_string, letter) { var answer = ''; for(let i = 0; i < my_string.length; i++){ if (my_string.toLowerCase().includes(`${letter}`)){ answer = my_string.replace(`${letter}`, "") } } return answer; }
우선 문자열이므로 answer는 ""부터 시작
매개변수 letter의 길이는 알수없으므로 백틱해서 중괄호로 묶었다.
includes함수는 대소문자를 구분하므로, 구분없이 하기 위해 toLowerCase() 로 전부 소문자열화 시키고,
includes로 letter가 포함되는지 확인해서 if문 조건에 부합하면 replace문으로 "" 없애는 함수 구현.
테스트 1은 통과했는데 2는 통과못함.
혹시 몰라서 소문자, 대문자를 나눠 if, else if문으로 했는데도 실패.
function solution(my_string, letter) { var answer = ''; for(let i = 0; i < my_string.length; i++){ if (my_string.toLowerCase().includes(`${letter}`)){ answer = my_string.replace(`${letter}`, "") } else if(my_string.toUpperCase().includes(`${letter}`)){ answer = my_string.replace(`${letter}`, "") } } return answer; }
오류사유를 보니 해당 문자가 있을경우 첫번째만 사라지고 두번째 사라져야 할 문자열은 그대로 있음.
정답
일단 처음 answer를 배열로 설정함. for문을 돌려서 str에 my_string의 철자 하나하나 넣어가면서
if문으로 만약 철자가 letter와 동일하면 continue문. (continue문을 만나면 해당 조건은 스킵하고 넘어간다.)
그렇지않을 경우 해당 철자를 끝으로 밀어넣고
join() 메서드 사용. join()은 배열의 모든 요소를 연결해 하나의 문자열로 만든다. 빈 쌍따옴표이므로 전체를 하나의 문자열로 만듦.
function solution(my_string, letter){ let answer = []; for (let i =0; i < my_string.length; i++){ let str = my_string[i]; if(str === letter){ continue; }else{ answer.push(str); } } return answer.join(""); }
'Coding Test > 프로그래머스 Lv.0' 카테고리의 다른 글
프로그래머스 - 각도기 (if문 여러개) (0) 2023.06.07 프로그래머스 문자 반복 출력하기 (repeat메소드, 더하기등호연산자) (0) 2023.06.07 프로그래머스 - 짝수의 합 (0) 2023.06.06 프로그래머스 - 양꼬치 (parseInt 메서드. 문자열을 숫자열로바꿈) (0) 2023.06.05 프로그래머스 짝수와 홀수 개수 구하기 (개념 알고있어야됨) (0) 2023.06.02