[알고리즘] 프로그래머스 - 문자열 다루기
https://programmers.co.kr/learn/courses/30/lessons/12918
문제설명
문자열 s의 길이가 4 혹은 6이고, 숫자로만 구성돼있는지 확인해주는 함수, solution을 완성하세요.
예를 들어 s가 a234이면 False를 리턴하고 1234라면 True를 리턴하면 됩니다.
- S는 길이 1 이상, 길이 8 이하인 문자열입니다.
이 문제는 엄청 간단한 문제다.(라고 생각했는데 아니었음)
우선 나의 풀이방법을 보면
- 매개변수로 들어온 문자열의 길이가 4나 6이 아닌경우 false를 반환한다.
- S의 각 문자들을 숫자로 변환한 뒤 정수가 맞는지 확인한다.
코드를 이렇게 작성한 이유는 s문자열 내에 음수를 의미하는 "-"나 소수를 의미하는 "."도 포함되어 있을수 있기때문에 s자체를 정수인지 확인하는 것보다는 한 글자씩 검사를 진행했다.
이렇게 코드를 작성했지만 좋은 코드는 아니라고 생각한다.
왜냐하면 시간복잡도가 증가했기때문에 비효율적이다..ㅜㅠ
function solution(s) {
if(s.length !== 4 && s.length !==6){ return false; }
const result = [...s].filter((each)=> !Number.isInteger(Number(each)));
return result.length > 0 ? false : true;
}
다른 사람들의 정답코드를 보면서 기록할만한 코드를 발견했다.
function solution(s){
var regex = /^\d{6}$|^\d{4}$/;
return regex.test(s);
}
이렇게 정규표현식을 사용해서 간단하게 작성할 수도 있다.
정규표현식을 공부해야겠다..!!!!!!!!
Author And Source
이 문제에 관하여([알고리즘] 프로그래머스 - 문자열 다루기), 우리는 이곳에서 더 많은 자료를 발견하고 링크를 클릭하여 보았다 https://velog.io/@dolarge/알고리즘-프로그래머스-문자열-다루기저자 귀속: 원작자 정보가 원작자 URL에 포함되어 있으며 저작권은 원작자 소유입니다.
우수한 개발자 콘텐츠 발견에 전념 (Collection and Share based on the CC Protocol.)