제주코딩베이스캠프 유튜브 - JavaScript 알고리즘 100일 챌린지

배열 두배 만들기

정수 배열 numbers의 각 원소에 두배를 곱한 배열을 구하기

function solution(numbers) {
    return numbers.map(v => v * 2);
}

사이트 추천: 쉽고 편하게 Mock 데이터 생성


문자열 뒤집기

문자열 my_string을 거꾸로 뒤집은 문자열 구하기

function solution(my_string) { 
	//return my_string.split('').reverse().join('');
	return Array.from(my_string).reverse().join(''); 
}

특정 문자 제거하기

my_string에서 letter를 제거한 문자열 구하기

function solution(my_string, letter) { 
	// return my_string.replaceAll(letter, '');
	let reg = new RegExp(letter, 'g') // 'g': 전역에서 검사 
	return my_string.replace(reg, '') 
}

정규 표현식을 쓰면 좋은점 ex. 문자열에서 1, 2, 3을 지우고 싶을때

'BCBdbe123094dr12of1j423'.replace(/[123]/g, '') 
//'BCBdbe094drofj4'
  • /[1-9]/g : 1~9
  • /[a-z]/g : a~z
  • /[A-Z]/g : A~Z

배열의 유사도

문자열 배열 s1과 s2가 주어질 때 같은 원소의 개수 구하기

  • 1 ≤ s1, s2의 길이 ≤ 100
  • 1 ≤ s1, s2의 원소의 길이 ≤ 10
  • s1과 s2의 원소는 알파벳 소문자로만 이루어져 있습니다
  • s1과 s2는 각각 중복된 원소를 갖지 않습니다.
  1. filter로 구히가
function solution(s1, s2) { 
	return s1.filter(v => s2.includes(v)).length; }
  1. 교집합으로 구하기
function solution(s1, s2) { 
	return s1.length + s2.length - new Set([...s1, ...s2]).size 
} 

가위 바위 보

function solution(rsp) { 
	let answer = {'0':'5', '2':'0', '5':'2'};
	return [...rsp].map(v=>answer[v]).join(''); 
}

배열 회전시키기

function solution(numbers, direction) { 
	if(direction === 'right'){
	 // numbers.unshift(numbers.pop()); 
	 numbers = [numbers.pop(), ...numbers];
	} else { 
		// numbers.push(numbers.shift()); 
		numbers = [...numbers.slice(1), numbers.shift()];
	} 
	return numbers 
}

외계행성의 나이

나이 age가 매개변수로 주어질 때 PROGRAMMER-962식 나이를 구하기

  • a는 0, b는 1, c는 2, …, j는 9
function solution(age) { 
	let chr = 'abcdefghij' 
	return Array.from(age.toString()).map(v =>  chr[v]).join('') 
	}

369게임

머쓱이가 말해야하는 숫자 order가 매개변수로 주어질 때,  머쓱이가 쳐야할 박수 횟수 구하기

3, 6, 9 개수 구하기

function solution(order) { 
// .length 시 왼쪽 피연산자가 null 또는 undefined일 때 런타임 에러 발생
	let value = order.toString().match(/[369]/g) ?? []; 
	return value.length; 
}
function solution(order) {
    const s = new Set('369')
    return order.toString().split('').filter(v => s.has(v)).length;
}

중복된 문자 제거

my_string에서 중복된 문자를 제거하기

function solution(my_string) { 
	return [...new Set(my_string)].join(''); 
}

A로 B만들기

문자열 before와 after가 매개변수로 주어질 때, before의 순서를 바꾸어 after를 만들 수 있으면 1을, 만들 수 없으면 0을 return

function solution(before, after) { 
	return before.split('').sort().join('') === after.split('').sort().join('') ? 1 : 0 ; 
}