프로그래머스
[JavaScript] 문자열 다루기 기본 - 프로그래머스
jjangsh
2024. 8. 13. 22:04
문제 :
내 풀이 :
function solution(s) {
if (s.length === 4 || s.length === 6) {
for (let i = 0; i < s.length; i++) {
if (isNaN(Number(s[i]))) {
return false;
}
}
return true;
} else {
return false;
}
}
1. 문자열 길이를 검사해서 주어진 문자열 's'의 길이가 4 또는 6인지 확인 후 만약 길이가 4 또는 6이 아니라면 바로 'false'를 반환한다.
2. 문자를 하나씩 검사해서 현재 문자를 숫자로 변환했을 때, 숫자가 아니면 'false'를 반환한다.
3. for문이 끝날 때까지 'false'가 반환되지 않았다면, 문자열의 모든 문자가 숫자라는 뜻이므로 'true'를 반환한다.
다른 사람의 풀이 :
function alpha_string46(s){
var result = false;
if((s.length == 4 || s.length == 6) && /^[0-9]+$/.test(s)) {
result = true;
}
return result;
}
위 풀이는 정규식을 사용하여 작성되었는데 ` /^[0-9]+$/ ` 이 무엇을 의미하는지 찾아보았다.
- ^는 문자열의 시작을 의미한다.
- [0-9]는 숫자 0부터 9까지의 범위를 나타낸다.
- +는 앞의 패턴이 1회 이상 반복됨을 의미한다.
- $는 문자열의 끝을 의미한다.
문자열 's'가 정규식 패턴과 일치하는지 검사하여 'true' 또는 'false'를 반환한다.
문자열의 길이가 4 또는 6이고, 정규식 검사에서 모든 문자가 숫자인 경우라면 result를 true로 설정한다.
조건을 만족하지 않으면 처음 result를 false로 초기화해놓은 상태가 유지된다.
프로그래머스 문제를 풀다보면 정규표현식을 사용하면 쉽게 풀 텐데...라는 생각이 들 때가 많다.
위 문제처럼 자주 쓸만한 정규식은 알고 있는게 좋을 것 같다고 느꼈다.