문제 설명
문자열 s의 길이가 4 혹은 6이고, 숫자로만 구성돼있는지 확인해주는 함수, solution을 완성하세요. 예를 들어 s가 "a234"이면 False를 리턴하고 "1234"라면 True를 리턴하면 됩니다.
제한사항
- s는 길이 1 이상, 길이 8 이하인 문자열입니다.
- s는 영문 알파벳 대소문자 또는 0부터 9까지 숫자로 이루어져 있습니다.
입출력 예
s | return |
"a234" | false |
"1234" | true |
문제풀이
- every() : 모든 배열에 아이템이 조건을 충족하면 true 반환, 아니면 false를 반환
- isNaN() : 어떤 값이 NaN인 지 판별 > NaN이면 true 반환, 아니면 false를 반환
// 첫 번째 시도
function solution(s) {
var answer = true;
answer = (s.length === 4 || s.length === 6) && !isNaN(+s);
// "0x16"일 때 영문이 들어가는 숫자가 숫자로 인식되는 경우가 있어서 해당 테스트에서 true가 반한됨
// 참고 : https://school.programmers.co.kr/questions/49912
return answer;
}
solution("a234");
solution("1234");
solution("0x16");
// 두 번째 시도
function solution(s) {
// 아래 if문에서 조건에 맞지 않는 경우 false를 대입해주는 코드가 없기 때문에 변수 생성 및 초기화 시 false로 값을 초기화 해주었다.
var answer = false;
if (s.length === 4 || s.length === 6) {
// "0x16"이 숫자로 인식되지 않도록, split()를 사용하여서 문자 배열을 만들고,
// 각 문자를 숫자로 변환했을 때(+item) NaN이 아니면(!isNaN()) true가 반환되도록 해주었고,
// every를 사용하여 모든 반환값이 true일 때 결과적으로 true를 반환하도록 해주었다.
answer = s.split("").every((item) => !isNaN(+item));
}
return answer;
}
solution("a234");
solution("1234");
solution("0x16");
'코딩 테스트 연습 > Programmers' 카테고리의 다른 글
[프로그래머스] 나머지가 1이 되는 수 찾기 (0) | 2023.09.08 |
---|---|
[프로그래머스] 숫자 짝꿍 (0) | 2023.09.07 |
[프로그래머스] 삼총사 (0) | 2023.09.04 |
[프로그래머스] 옹알이 (2) (0) | 2023.08.31 |
[프로그래머스] 없는 숫자 더하기 (0) | 2023.08.30 |
댓글