첫 할인 태그만 바꾸기
자바스크립트 코딩테스트 문제로 string-single-replacement-methods 주제를 연습해보세요. 난이도는 easy이며, 브라우저에서 바로 JavaScript로 풀이를 실행할 수 있습니다.
상품 안내 문장에서 처음 등장하는 SALE 태그 하나만 EVENT로 바꿔 반환하세요.
오늘의 메서드
String.replace()
메서드 설명
replace()는 문자열에서 찾고 싶은 부분을 다른 문자열로 바꾼 새 문자열을 반환하는 메서드입니다.
첫 번째 인수로 문자열을 넣으면, 같은 내용이 여러 번 있어도 처음 발견한 한 곳만 바뀝니다. 그래서 “딱 한 번만 바꾸기”를 연습하기에 좋습니다.
기본 문법
string.replace(searchValue, replaceValue)
searchValue: 찾을 문자열replaceValue: 바꿔 넣을 문자열- 반환값: 일부가 바뀐 새 문자열
사용 예시
"SALE now, SALE later".replace("SALE", "EVENT");
// "EVENT now, SALE later"
첫 번째 SALE만 EVENT로 바뀌고, 뒤에 있는 SALE은 그대로 남습니다.
주의할 점
replace()는 원본 문자열을 바꾸지 않고 새 문자열을 반환합니다.- 첫 번째 인수로 문자열을 넣으면 첫 번째 일치 항목만 바꿉니다.
- 대소문자를 구분하므로
sale은SALE과 다르게 처리됩니다. - 문장 안에 찾는 문자열이 없으면 원래 문자열과 같은 내용이 반환됩니다.
제한사항
message는 길이 1 이상 200 이하의 문자열입니다.- 바꿀 대상은 정확히 대문자
SALE입니다. SALE이 여러 번 등장해도 처음 등장한 하나만EVENT로 바꿉니다.SALE이 없으면 입력 문자열을 그대로 반환합니다.- 반환값은 변환된 문자열입니다.
예시
- 입력:
message = "SALE today only"-> 출력:"EVENT today only" - 입력:
message = "SALE now, SALE later"-> 출력:"EVENT now, SALE later" - 입력:
message = "No discount today"-> 출력:"No discount today" - 입력:
message = "preSALE and SALE"-> 출력:"preEVENT and SALE"
힌트
SALE을 찾는 값으로,EVENT를 바꿀 값으로 넣어 보세요.- 여러 번 등장하는지 직접 셀 필요는 없습니다.
- 오늘의 메서드는 기본적으로 첫 번째 일치 항목만 바꿉니다.
해설
이 문제는 문자열에서 특정 단어를 한 번만 치환하는 기본 흐름을 익히는 문제입니다.
String.replace()에 찾을 문자열과 바꿀 문자열을 차례대로 넣으면 됩니다.
function replaceFirstSaleTag(message) {
return message.replace("SALE", "EVENT");
}
예를 들어 "SALE now, SALE later"에서는 앞쪽 SALE을 먼저 찾습니다. 문자열 인수를 사용한 replace()는 첫 번째 일치 항목만 바꾸므로 결과는 "EVENT now, SALE later"가 됩니다.
모든 SALE을 바꾸는 문제가 아니라 처음 하나만 바꾸는 문제이기 때문에 replaceAll()이 아니라 replace()가 더 적합합니다.
코드 작성
starter code를 바탕으로 함수를 완성한 뒤 예제 테스트를 실행해보세요.
JavaScript
에디터 로딩 중...
커스텀 테스트
함수 인자를 JSON 배열 형태로 입력하세요. 예: [3, 5], [[1, 2, 3]]
아직 실행하지 않았습니다.
실행 결과
아직 실행하지 않았습니다.
예제 테스트를 실행하면 여기에서 결과를 확인할 수 있습니다.
댓글
문제 풀이 아이디어, 질문, 반례를 자유롭게 나눠보세요.