본문 바로가기

javaScript/알고리즘 문제 풀이

a-m이 아닌 문자 길이를 구하라

문자열의 길이는 1보다 크거나 같고 ato z의 문자 만 포함합니다.


1
2
3
4
5
s="aaabbbbhaijjjm"
error_printer(s) => "0/14"
 
s="aaaxbbbbyyhwawiwjjjwwm"
error_printer(s) => "8/22"
cs






내 답


1
2
3
4
5
6
7
function printerError(s) {
 
 let sLength=s.match(/[n-z]/g);
 
 return (sLength ==null ? 0:sLength.length)+"/"+s.length
 
}
cs



















best로 뽑힌 답변1


1
var printerError = s => (s.match(/[n-z]/g) || []).length + '/' + s.length;
cs



best로 뽑힌 답변2



1
2
3
4
5
function printerError(s) {
 
  return `${s.replace(/[a-m]/ig, '').length}/${s.length}`;
 
}
cs



깨달은 점


match() 메소드에서 값이 비어 있을 경우 null이 나오는데 대신 ||을 대신 사용하고 빈 배열을 넣어서 length가 0이 되도록 만들었다.


+와 "/" 이런식으로 사용하지 않아도 `와 $를 사용하여 좀더 심플하고 보기 명료하게 사용하였다.