[코딩테스트] 문자열 다루기 기본
문제 설명
문자열 s의 길이가 4 혹은 6이고, 숫자로만 구성돼있는지 확인해주는 함수, solution을 완성하세요. 예를 들어 s가 "a234"이면 False를 리턴하고 "1234"라면 True를 리턴하면 됩니다.
제한 사항- s는 길이 1 이상, 길이 8 이하인 문자열입니다.
- s는 영문 알파벳 대소문자 또는 0부터 9까지 숫자로 이루어져 있습니다.
"a234" | false |
"1234" | true |
function solution(s) {
return Number(s) ? true : false
}
처음에는 문제를 제대로 읽지 않아서 위의 코드로 해결하려고 했었는데 문제를 읽다보니 생각해야하는 것들이 있었다.
1. 문자열의 길이는 4 혹은 6 이어야한다.
2. 숫자로만 구성이 되어있어야한다.
나는 1번을 완전 고려하지 않고서 코딩을 했던거라 다음의 코드로 수정을 해보았다.
function solution(s) {
if(s.length === 4 || s.length === 6){
return Number(s) ? true : false
}else{
return false
}
}
이제 됬겠다!! 싶었는데 이코드도 테스트에 통과하지 못했다. 뭐가 문제인지 도저히 알수 없어서 정답을 봐버렸다!
내 코드에서 문제점은 Number로 변경했을때 '10e1' 은 false 가 나와야하지만 true가 나오는 이슈가 있었다. 어떻게 해줘야할지 감이안와서 다른분의 코드로 통과를 한다음 다른 분들은 어떻게 했는지에 대해서 찾아봤고 정규식을 통해서 해결하신 분들이 많이 있었다.
function solution(s) {
return s.search(/\D/g) < 0 && (s.length === 4 || s.length === 6);
}
다음 블로그에서 정규 표현식이 어떻게 되는지에 대해서 자세히 공부 해야겠다.
https://curryyou.tistory.com/234
[자바스크립트] 정규표현식(Regular Expression) 기초/기본 쉽고 상세한 사용 방법 정리(샘플 예제 코
# 정규표현식이란?(Regular Expression: Regex) 정규표현식은 "특정 패턴의 문자열"을 찾기 위한 표현 방식입니다. (이런걸 형식 언어, formal languange라고 합니다.) 정규표현식을 이용하면, 특정 패턴에 매
curryyou.tistory.com