[프로그래머스] 크기가 작은 부분문자열 (javascript

2023. 3. 18. 23:51· 코테 준비/프로그래머스
목차
  1. 나의 풀이

    문제 설명

    • 크기가 작은 부분문자열

    숫자로 이루어진 문자열 t와 p가 주어질 때, t에서 p와 길이가 같은 부분문자열 중에서, 이 부분문자열이 나타내는 수가 p가 나타내는 수보다 작거나 같은 것이 나오는 횟수를 return하는 함수 solution을 완성하세요.

    예를 들어, t="3141592"이고 p="271" 인 경우, t의 길이가 3인 부분 문자열은 314, 141, 415, 159, 592입니다. 이 문자열이 나타내는 수 중 271보다 작거나 같은 수는 141, 159 2개 입니다.


    제한사항
    • 1 ≤ p의 길이 ≤ 18
    • p의 길이 ≤ t의 길이 ≤ 10,000
    • t와 p는 숫자로만 이루어진 문자열이며, 0으로 시작하지 않습니다.

    입출력 예tpresult
    "3141592" "271" 2
    "500220839878" "7" 8
    "10203" "15" 3

    입출력 예 설명

    입출력 예 #1
    본문과 같습니다.

    입출력 예 #2
    p의 길이가 1이므로 t의 부분문자열은 "5", "0", 0", "2", "2", "0", "8", "3", "9", "8", "7", "8"이며 이중 7보다 작거나 같은 숫자는 "5", "0", "0", "2", "2", "0", "3", "7" 이렇게 8개가 있습니다.

    입출력 예 #3
    p의 길이가 2이므로 t의 부분문자열은 "10", "02", "20", "03"이며, 이중 15보다 작거나 같은 숫자는 "10", "02", "03" 이렇게 3개입니다. "02"와 "03"은 각각 2, 3에 해당한다는 점에 주의하세요

    https://school.programmers.co.kr/learn/courses/30/lessons/147355

     

    프로그래머스

    코드 중심의 개발자 채용. 스택 기반의 포지션 매칭. 프로그래머스의 개발자 맞춤형 프로필을 등록하고, 나와 기술 궁합이 잘 맞는 기업들을 매칭 받으세요.

    programmers.co.kr

    나의 풀이

    function solution(t, p) {
        let result =[];
        let str = '';
        for(let i =0; i<t.length ;i++){
            str += t[i];
            if(str.length === p.length){
                str =Number(str);
                result.push(str);
                str ='';
                i = i - p.length+1 ;
            }
        }
        console.log(result);
        const answer = result.filter(x => x <= p);
        
        console.log(answer);
        return answer.length;
    }

    문자열을 p의 길이만큼 잘라주기위해 if문의 조건을 str의 길이가 p의길이와 같을때로 작성했고 str은 문자열로 받았기 때문에 숫자로 변환해주어 결과 배열에 push 하고 다시 str 을 초기화 시키고 i를 다시 설정해주었다. 

    그 후 filter 를 사용해 p보다 작은 것만 answer 배열에 저장시키고 배열의 길이를 리턴해주어 풀었다. 

     

    다른 사람들의 풀이를 보니 더 간결하게 푼 사람들이 많은 것 같다. 생각을 많이 하면서 풀어서 코드가 길어진 느낌이다.. ㅎㅎ !! 

     

    오늘도 열공! 

    '코테 준비 > 프로그래머스' 카테고리의 다른 글

    [프로그래머스] 가장 가까운 같은 글자  (0) 2023.08.13
    [프로그래머스] 푸드 파이트 대회 (javascript)  (0) 2023.03.19
    [프로그래머스] 두 개 뽑아서 더하기 (javascript)  (0) 2023.03.18
    [프로그래머스] K번째 수 (javascript)  (1) 2023.03.18
    [프로그래머스] 예산 (javascript)  (0) 2023.03.06
    1. 나의 풀이
    '코테 준비/프로그래머스' 카테고리의 다른 글
    • [프로그래머스] 가장 가까운 같은 글자
    • [프로그래머스] 푸드 파이트 대회 (javascript)
    • [프로그래머스] 두 개 뽑아서 더하기 (javascript)
    • [프로그래머스] K번째 수 (javascript)
    배트리버
    배트리버
    🐾 사람 좋아, 개발 좋아 🐾 궁금한 건 끝까지 파고들고, 배운 건 즐겁게 나누는 개발자의 놀이터
    배트리버
    리트리버의 개발 놀이터
    배트리버
    전체
    오늘
    어제
    • 분류 전체보기
      • 네트워크
      • 기초 셋팅
      • 오늘의 일기
      • 리액트
      • 코테 준비
        • 프로그래머스
        • 백준
      • 코드스테이츠44기 프론트엔드
      • HTML-CSS-JavaScript
        • HTML
        • CSS
        • JavaScript
      • 자료구조&알고리즘
      • TypeScript
      • Git
      • Tip
      • 프로젝트
      • Next.js
      • 트러블슈팅

    블로그 메뉴

    • 홈
    • 태그
    • 방명록

    공지사항

    인기 글

    태그

    • 코드스테이츠 회고록
    • 코드스테이츠 44기
    • 네트워크
    • 코드스테이츠 프론트엔드
    • 코드스테이츠 44기 프론트엔드
    • 리액트 상태관리
    • 자바스크립트
    • 리액트쿼리
    • 자바스크립트 비동기
    • 프로그래머스
    • 코드스테이츠 블로깅
    • 코드스테이츠
    • BFS
    • KPT 회고
    • 리액트
    • 탄스택쿼리
    • 타입스크립트문법
    • 프로젝트 회고
    • 티스토리챌린지
    • 오블완

    최근 댓글

    최근 글

    hELLO · Designed By 정상우.v4.2.2
    배트리버
    [프로그래머스] 크기가 작은 부분문자열 (javascript
    상단으로

    티스토리툴바

    단축키

    내 블로그

    내 블로그 - 관리자 홈 전환
    Q
    Q
    새 글 쓰기
    W
    W

    블로그 게시글

    글 수정 (권한 있는 경우)
    E
    E
    댓글 영역으로 이동
    C
    C

    모든 영역

    이 페이지의 URL 복사
    S
    S
    맨 위로 이동
    T
    T
    티스토리 홈 이동
    H
    H
    단축키 안내
    Shift + /
    ⇧ + /

    * 단축키는 한글/영문 대소문자로 이용 가능하며, 티스토리 기본 도메인에서만 동작합니다.