공부/코딩테스트

Q. 문자열 다루기 기본

뀨뿌뀨뿌 2023. 6. 17. 21:51

문자열 s의 길이가 4 혹은 6이고, 숫자로만 구성돼있는지 확인해주는 함수, solution을 완성하세요. 예를 들어 s가 "a234"이면 False를 리턴하고 "1234"라면 True를 리턴하면 됩니다.

🚫제한 사항
s는 길이 1 이상, 길이 8 이하인 문자열입니다.
s는 영문 알파벳 대소문자 또는 0부터 9까지 숫자로 이루어져 있습니다.

❗입출력 예

s return
"a234" false
"1234" true

😀 내가 푼 답

 

function solution(s) {
  if (s.length === 4 || s.length === 6) {
    return s.split("").every((x) => !isNaN(x));
  } else {
    return false;
  }
}

❗❗ 자바스크립트에서는 숫자뒤에 e가 있으면 지수로 인식하여 문자인 경우도 숫자로 인식하게 됨
    많이 사용되지는 않지만 2000이란 숫자를 2e3으로 표기를 할 수 있음

  • every()
    • every() 메서드는 배열 안의 모든 요소가 주어진 판별 함수를 통과하는지 테스트를 함
    • Boolean값을 반환함
    • 배열의 모든요소가 콜백함수에서 true값을 리턴해야 true값을 리턴함
      => 하나라도 false면 false를 리턴함
      <=> some() 함수는 배열의 요소중 하나라도 콜백에서 true값을 리턴하면 true값을 리턴함

 

😊 문제풀이 답안 OR 다른사람들 답안

function alpha_string46(s){
  var result;
  if (s.length === 4 || s.length === 6) {
    if (typeof Number(s) === "number"){
      result = true;
    } else {
            result = false;
    }
  } else { 
    result = false;
  }

  return result;
}

// 2
function solution(s) {
    if(s.length != 4 && s.length != 6) return false;
    for(var i = 0; i < s.length; i++) {
        if(isNaN(Number(s[i]))) return false;
    }
    return true;
}

// 3
function solution(s) {
    if(s.match(/[a-zA-Z]/g)===null){
        if(s.length===4 || s.length===6){
            return true
        }
        return false;
    } else{
        return false
    }
}

'공부 > 코딩테스트' 카테고리의 다른 글

Q. 수박수박수박수박수박수?  (0) 2023.06.19
Q. 서울에서 김서방 찾기  (1) 2023.06.19
Q. 행렬의 덧셈  (0) 2023.06.17
Q. 나누어 떨어지는 숫자 배열  (0) 2023.06.17
Q. 2016년  (0) 2023.06.17