Problem
- Your car is old, it breaks easily.
- The shock absorbers are gone and you think it can handle about 15 more bumps before it dies totally.
- 충격 흡수 장치가 제 기능을 못한다.
- 차가 고장나기 전까지 약 15번 이상의 충돌을 처리할 수 있다.
- Given a string showing either flat road (‘_’) or bumps (‘n’), work out if you make it home safely.
- 평평한 도로(‘_’) 또는 돌출부(‘n’) 중 하나를 나타내는 문자열이 주어진다.
- 15 bumps or under, return ‘Survive’, over 15 bumps return ‘Car Dead’.
- 15번의 충돌 또는 이하라면 ‘Survive’를 반환하고, 15번의 충돌 초과라면 ‘Car Dead’를 반환한다.
Solution 01
function bump(road) {
let count = 0;
for (let i = 0; i < road.length; i++) {
if (road[i] === 'n') {
count++;
}
}
return count <= 15 ? 'Survive' : 'Car Dead';
}
bump('____n__n_'); // Survive
bump('____n_n_nnnn___nnnnnnnnn'); // Survive
bump('____n_n_nnnn___nnnnnnnnnn'); // Car Dead
Solution 02
function bump(road) {
return road.split('n').length - 1 <= 15 ? 'Survive' : 'Car Dead';
}
bump('____n__n_'); // Survive
bump('____n_n_nnnn___nnnnnnnnn'); // Survive
bump('____n_n_nnnn___nnnnnnnnnn'); // Car Dead
split()
: 문자열을 부분 문자열로 분할하고, 새 배열로 반환한다.
Solution 03
function bump(road) {
return road.replace(/_/g, '').length <= 15 ? 'Survive' : 'Car Dead';
}
bump('____n__n_'); // Survive
bump('____n_n_nnnn___nnnnnnnnn'); // Survive
bump('____n_n_nnnn___nnnnnnnnnn'); // Car Dead
replace()
: 대응되는 문자열을 찾아 다른 문자열로 치환한다.
g
: 전역 검색