코딩테스트 입문
문자열 다루기 기본
강민승
2022. 11. 19. 18:40
문제
나의 풀이

KEY POINT : isNaN()
for문을 사용하기 너무 싫어서 문자열을 배열로 바꾼 후, map함수를 사용하여 순회하는 값을(data) number값인지 아닌지를 판별 후(isNaN), 숫자이면서(!isNaN) s배열의 길이가 4 혹은 6일때는 빈값을 리턴, 그렇지 않으면 answer 숫자를 카운팅.
숫자가 빈값이아니면 카운팅이 된 것이기 때문에 문자열로 판단 false를 리턴한다.
다른 사람 풀이방식
function alpha_string46(s) {
return s.length == 4 || s.length == 6 ? !isNaN(s) : false
}
다른 분이 푸신 코드는 정확한 키포인트는 같으나 역시나 코드의 간소화의 문제가 여전히 남아 있다.
이분이 쓴 코드와 글쓴이의 코드를 비교해보자면 처참하다.
굳이 배열로 바꿀 필요가 없었고, 순회할 필요도 없었다.
중요한건 중복된 코드내용을 줄여서 확인하는 방법을 생각해야 한다는 것. isNaN이 반복 됨에도 불구하고 계속 썼었고 불필요한 코드를 생성하여 길이만 길어지게 되었다.
정확한키포인트는 똑같이 들어가 있으니 부가적으로 왜 계속 넣어서 코딩하는지 어떻게 생각해서 한건지 분석을 해봐야 할 것 같다.