프로그래머스 lv1 - 문자열다루기 기본 (feat.동언이의 도움)

soo's·2023년 4월 9일
0

알고리즘 풀기

목록 보기
9/15
post-thumbnail

문제 링크는 여기 참고 문자열 다루기 기본

1트

function solution(s) {
  if (s.length == 4 || s.length == 6) {
    return [...s].every((val) => !(isNaN(val/1)));
  }
}

안되는 케이스가 있어서 내가 every 메서드를 제대로 이해를 못했나 했는데 챗쥐한테 물어보니까 걍 정규표현식 쓰라고 함 아니1!! 나는 왜 이게 안되는지 궁금하다니까??!!!

동언쓰가 도와줬는데 이것저것 보다가
문자열 길이가 저기에 해당이 안될때에 대한 케이스를 안 써준거같다고 return false 해보라고 했다.
된다!!!

1트 결론

아니 근데 이거는 .. 그렇구나 앞으로 케이스 분류를 잘 해야겠다..
문자열이 저기에 해당되지 않을때는 undefined만 되니까 계속 케이스 틀렸던거임. 처리를 잘 하자!


2트

function solution(s) {
    if(s.length === 4 || s.length === 6) {
        return /^[0-9]+$/.test(s);
    }
    return false
}

챗쥐가 써보라고 한 정규표현식
간결하구만 근데 +는 [] 문자열 세트가 one or more인지 여부를 적어주는거라고 한당. 그래서 0123도 ok고 01239도 오케이

Yes, the + sign is a quantifier in regular expressions, and it means "one or more". So [0-9]+ matches one or more digits (0 to 9).
To break it down further, the square brackets ([ ]) indicate a character set, which means any character within the brackets is a valid match. In this case, the character set is [0-9], which means any digit from 0 to 9 is a valid match.
So, the regular expression [0-9]+ matches one or more digits (0 to 9) in a row.


Number, ParseInt

// Number
// ex) Number('0.5') === 0.5
// 해당 문자열의 숫자를 있는 그대로 출력한다.
// 문자열 내에 숫자 말고도 문자가 섞여있으면 무조건 NaN로 나온다.

// parseInt
// ex) parseInt('0.5') === 0
// 소수를 출력해도 해당 소수점은 다 자르고 정수만 나온다.
// 문자열 내에 숫자 말고도 문자가 섞여있어도 숫자만 그대로 출력해주는 기능이 있다.

0개의 댓글