728x90
반응형
이번 문제를 풀어 보고 싶다면? 아래 링크를 클릭하세요!
나의 경우 이번 문제를 풀 때 조건 한 줄 한 줄에 충실하여 작성하였다. 우선 answer의 기본값을 true로 설정하고 if문을 거치면서 주어진 문자열이 조건에 충족하는지 여부를 판별한다. 조건을 모두 충족한다면 true를 반환하고 아니라면 그 시점에서 즉시 false를 반환하게끔 작성하였다. 문자열 중에 숫자 이외의 문자가 포함되어 있는지 여부는 isNaN() 메서드를 활용해 구현하였다. isNaN()은 매개변수로 입력된 문자의 자료형이 number가 아니라면 true를 반환한다.
나머지 해답은 정규 표현식을 활용하여 답을 구한 다른 사람들의 코드를 참고하였다. 두 번째 Solution에 적힌 regex를 설명하자면, 시작(^)부터 끝($)까지 숫자만을 검색(\d)하는데 숫자가 4자리 혹은 6자리인지를 test() 메서드를 통해 판별한다. 매개변수로 입력 받은 regex가 조건을 모두 충족한다면 true, 아니라면 false를 반환한다. 세 번째 Solution은 시작(^)부터 끝($)까지 숫자만을 검색([0-9])하는데 앞에 자릿수를 판별하는 조건문이 작성되어 있기 때문에 숫자가 여러 번(+) 등장하는지만을 판별한다. 역시나 test() 메서드를 활용하여 조건을 만족한다면 true, 아니라면 false를 반환한다.
Solutions
function solution(s) { /* My Solution */ let answer = true; const len = s.length; if (len === 4 || len === 6) answer = true; else { answer = false; return answer; } for (const c of s) { if (isNaN(c)) { answer = false; return answer; } } return answer; /* Regular Expressions 1. */ let regex = /^\d{6}$|^\d{4}$/; return regex.test(s); /* Regular Expressions 2. */ let result = false; if ((s.length === 4 || s.length === 6) && /^[0-9]+$/.test(s)) result = true; return result; }
728x90
반응형
'👩💻 Programming > Coding Test 문제 풀이' 카테고리의 다른 글
[Programmers] level 1: 소수 찾기 by JavaScript (0) | 2022.07.10 |
---|---|
[Programmers] level 1: 서울에서 김서방 찾기 by JavaScript (0) | 2022.07.09 |
[Programmers] level 1: 문자열 내림차순으로 배치하기 by JavaScript (0) | 2022.07.09 |
[Programmers] level 1: 문자열 내 p와 y의 개수 by JavaScript (0) | 2022.07.09 |
[Programmers] level 1: 문자열 내 마음대로 정렬하기 by JavaScript (0) | 2022.07.09 |
댓글