본문 바로가기
문제풀이/프로그래머스

문자열 다루기 기본

by dev_kong 2021. 11. 24.
728x90
728x90

문제 설명

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

 

접근방법

우선 split으로 배열로 바꾸고

if 로 자릿수를 확인하고

자릿수 안맞으면 바로 false 리턴하고

문자열을 Number를 이용해서 숫자로 바꾸려하면

NaN이 나오니까

for of로

isNaN을 돌려서 트루가 나오면 answer에 1을 더해주고

false 나오면 0을 더해주고.....

!answer 리턴 하면.. 되겠지??

 

function solution(s) {
  let answer = 0;
  const arr = s.split('');
  if (arr.length === 4 || arr.length === 6) {
    for (let value of arr) {
      answer += isNaN(Number(value)) ? 1 : 0;
    }
  } else return false;
  return !answer;
}

 

엌ㅋㅋㅋㅋㅋㅋㅋ이게 돌아가누 ㅋㅋㅋㅋㅋ

일단 풀었으니 기뻐해본다..

우리집 시니어 불러서 자랑좀 하고

같이 리팩토링 했다.

 

function solution(s) {
  const arr = s.split('');

  if (arr.length !== 4 && arr.length !== 6) {
    return false;
  }

  for (let value of arr) {
    if (isNaN(Number(value))) {
      return false;
    }
  }
  return true;
}

 

확실히 깔끔하다...

리턴도 빠르고, 가독성도 매우 좋다

굳이 1 더하고 그런거 안해도 됐음 ㅋㅋㅋㅋ

if 이용해서 isNaN 트루 뜨면 바로 리턴 하면 됐는데 ㅋㅋ

항상 얼리리턴 을 유념하면서 코드를 짜자...

 

아! 그리고 다른사람 답보다가 발견한..

function alpha_string46(s){
  var regex = /^\d{6}$|^\d{4}$/;
  return regex.test(s);
}

킹갓정규식.....

개멋있어... 오늘부터 1일1정규식 간다....

728x90
728x90

'문제풀이 > 프로그래머스' 카테고리의 다른 글

대중소괄호 짝 맞추기  (0) 2021.11.26
올바른 괄호  (0) 2021.11.26
자릿수 더하기  (0) 2021.11.24
이상한 문자열 만들기  (0) 2021.11.23
자연수 뒤집어 배열로 만들기  (0) 2021.11.23

댓글