Koras02
Koras02코딩웹
Koras02
전체 방문자
오늘
어제
  • 분류 전체보기 (299)
    • 백엔드 (59)
      • nestjs (2)
      • Ruby (3)
      • PostgresQL (11)
      • MySQL (5)
      • Haskell (7)
      • Koa (3)
      • Java (3)
      • Python (5)
      • Rust (5)
      • MongoDB (2)
      • PHP (3)
      • Spring Boot (1)
      • redis (5)
      • deno (2)
    • 웹서버 (3)
      • nginx (1)
      • Apache (2)
      • Google Web Server (0)
    • 모바일개발 (5)
      • Figma (0)
      • React Native (2)
      • swift (0)
      • Flutter (3)
      • Kotlin (0)
    • 프론트 엔드 (158)
      • HTML (34)
      • CSS (7)
      • Javascript (35)
      • Angular (0)
      • Typescript (2)
      • React (58)
      • Vue (2)
      • GIT (6)
      • GraphQL (1)
      • Doker (4)
      • Go (8)
      • svelte (1)
      • gatsby (0)
    • etc. (47)
      • Notion (0)
      • TIL (24)
      • Algorithm (17)
      • Algorithm 개념 정리 (2)
      • Wiki (3)
      • Official document (1)
    • 웹개념 (12)
    • 변수정리 (1)
    • VSCode (2)
    • 포트폴리오 분석 (2)
      • React (2)
    • os (5)
      • 윈도우 (4)
      • Mac (0)
      • 가상머신 (0)
      • linux (1)
    • 응용프로그램언어 (2)
      • C (2)
      • C++ (0)
      • C# (0)
    • 블로그 운영관련 (1)

블로그 메뉴

  • 홈
  • 태그
  • 방명록
글쓰기

공지사항

  • [공지사항] 개발 이슈나 공식문서 업데이트 업로드 예정입니⋯

인기 글

태그

  • javascript
  • mysql
  • Haskell
  • html
  • React
  • 하스켈
  • koa
  • html5
  • 프로그래머스
  • Til
  • 알고리즘
  • Java
  • Rust
  • 문자열
  • redis
  • PostgreSQL
  • CSS
  • go
  • 데이터 타입
  • Flutter

티스토리

최근 댓글

최근 글

250x250
hELLO · Designed By 정상우.
Koras02

Koras02코딩웹

[프로그래머스 코딩테스트] 문자열 다루기 기본
프론트 엔드/Javascript

[프로그래머스 코딩테스트] 문자열 다루기 기본

2022. 1. 19. 09:55
728x90

[프로그래머스] 문자열 다루기 기본

문제 설명

 

문자열 s의 길이가 4 혹은 6이고, 숫자로만 구성돼있는지 확인 해주는 함수, solution을 완성하세요, 예를 들어 

s가 "a1234" 이면 False를 리턴하고 1234라면 True를 리턴하면 됩니다.

 

제한 사항

  • s의 길이는 1이상, 길이 8 이하인 문자열입니다.

입출력 예

s return
"a234" false
"1234" true

 

 

정규표현식을 이용한 풀이법

function solution(s) {
    
    return (s.length === 4 || s.length === 6) && /^[0-9]+$/.test(s);
}
  • test() 메서드는 주어진 문자열이 정규 표현식에 만족하는지 판별하고, 그 여부를 true 또는 false로 반환한다.

1. ^ : 시작

2. [0-9]: 0 ~ 9 까지의 숫자

3. + : 반복, 앞의 문자가 1개 이상인 경우

4. $: 종료

 

/^[0-9]*$/ 가 숫자만 있는지 확일할때에 가장 많이 쓰는 방법이다. 

 

멘토님 풀이법

function solution(s) {
    
    // s의 length 값이 아니거나 6이 아닐때 false 값 리턴 
    if (s.length !== 4 &&  s.length !== 6) {
        // && /^[0-9]+$/.test(s)
        return false;  
    };
    
    let answer = true; 
    for (let i = 0; i < s.length; i++) {   
        // 반복물 돌릴때 숫자나 문자가 아니면 length 값을 false로 return
        // console.log(s[i]);
        
        // Number 타입으로 s의 i 값으로 변경
       // 해당 데이터는 숫자 타입이 아니다.
        // console.log(isNaN(s[i]))
        
        
        // if 문 처리
        if (isNaN(s[i]) === true ) {
            // 나라도 false일때 문제발생
            answer = false;
            break;
        } 
    }
    
    // true 라면 answer 리턴 // true 로도 가능
    return answer;
}

멘토님의 풀이법

function solution(s) {
    
    // s의 length 값이 아니거나 6이 아닐때 false 값 리턴 
    if (s.length !== 4 &&  s.length !== 6) {
        // && /^[0-9]+$/.test(s)
        return false;  
    };
    
    // 반복문을 돌려 isNan이 true를 나타내는 데이터면 배열로 남기고 return 할때 배열이 비워있으면 
    // 문자데이터가 없고 하나라도 있다면 있다는 뜻 
    // 필요한 메서드만 거르는 filter 
    
    
    // 문자열을 배열로 쪼개주는 메서드 = split 
    const answer = s.split("")
                   .filter (num => {
                       // num에 데이터가 맞는 것 
                       // 숫자 데이터가 아닌 문자 데이터만 
                       // isNaN의 결과가 true 값인 데이터만 남기게됨 
                      return isNaN(num)
                   })
    
    
                console.log(answer);
    
    // answer 의 length 값이 0인지 대입
    return answer.length === 0
        }


//     let answer = true; 
//     for (let i = 0; i < s.length; i++) {   
//         // 반복물 돌릴때 숫자나 문자가 아니면 length 값을 false로 return
//         // console.log(s[i]);
        
//         // Number 타입으로 s의 i 값으로 변경
//        // 해당 데이터는 숫자 타입이 아니다.
//         // console.log(isNaN(s[i]))
        
        
//         // if 문 처리
//         if (isNaN(s[i]) === true ) {
//             // 나라도 false일때 문제발생
//             answer = false;
//             break;
//         } 
//     }
    
//     // true 라면 answer 리턴 // true 로도 가능
//     return answer;
// }

 

참고링크

https://habitual-history.tistory.com/3

 

[프로그래머스] 문자열 다루기 기본 | javascript

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

habitual-history.tistory.com

 

'프론트 엔드 > Javascript' 카테고리의 다른 글

[JS] JS와 TS의 차이점  (0) 2022.01.20
[javascript] map,filter,every 함수  (0) 2022.01.18
[프로그래머스 알고리즘] 같은 숫자는 싫어  (0) 2022.01.17
    '프론트 엔드/Javascript' 카테고리의 다른 글
    • [Javascript] 자바스크립트: '==' 와 '==='는 다르다!
    • [JS] JS와 TS의 차이점
    • [javascript] map,filter,every 함수
    • [프로그래머스 알고리즘] 같은 숫자는 싫어
    Koras02
    Koras02
    현재 사용중인 언어 - next-js,react,vue, typescript

    티스토리툴바