Lv.0 모음 제거

송민혁·2023년 3월 25일

Coding Test

목록 보기
1/15
post-thumbnail

멘토님께서 과제를 내주셔서 이제 하루에 1개씩 코딩테스트 관련된 글을 게시하기로 했습니다. 형식은 제 나름대로 풀어본 다음에 다른 사람들을 코드를 모아보는 식으로 하겠습니다.

문제

분석

인수로 받은 문자열(my_string)에서 모음에 해당하는 요소를 제거하고, 문자열 형식으로 return하는 함수를 만드는 것입니다.

추상적 표현

문자열을 받으면 문자열을 문자가 들어간 배열로 전개(...)한 뒤에
모음에 해당되는 요소가 있다면(includes) 그 요소(indexOf)를 제거(splice)하고
다시 문자열로 합쳐서(join) 반환하면 된다.

코드 구현

const solution = (my_string) => {
 	let answer = [...my_string]; // 문자열을 쪼개 배열에 전개
  	let vowel = ["a", "e", "i", "o", "u"]; // 모음 배열
    
  	// 모음의 요소의 개수로 반복문을 사용하는 메소드(forEach)를 이용  
  	vowel.forEach(el => 
    	while(answer.includes(el)) {
     		answer.splice(answer.indexOf(el), 1); 
    })
  	
  	return  answer.join(''); // 문자열로 다시 합치기
}

모범 답안

정규 표현식

정규 표현식을 사용하면 해당 문자를 걸러내는(filter) 코드를 간결하게 표현할 수 있다.
여기서 가장 많이 쓰이는 정규 표현식에 대해 공부할 필요성이 있다.

나랑 다른 배열 내장 메소드


여기서는 내가 Array.from()을 제대로 알지 못했다.

console.log(Array.from('foo'));
// Expected output: Array ["f", "o", "o"]

console.log(Array.from([1, 2, 3], x => x + x));
// Expected output: Array [2, 4, 6]

그리고 (t => !['a', 'e', 'i', 'o', 'u' ].includes(t))라는 표현을 처음 접했다.
배열 앞에 not(!)을 붙여서 표현할 수 있는 걸 처음 알았다!!

잘한 점 & 부족한 점

배열이라는 자료구조를 선정하고 배열 내장 메소드를 사용해서
추상적 표현을 토대로 코드를 구현한 점은 잘했다.

하지만 부족한 점으로는 더 쉬운 방법인 정규 표현식을 아직 모른다는 점이다.
정규 표현식은 주로 문자열의 검색과 치환을 위한 용도로 사용하고 있는데,
이 점을 알았다면 코드 표현이 더 간결했을 것이다.

정규 표현식에 대하여 공부할 필요가 매우 매우 매우 매우 있다.

0개의 댓글