[ 프로그래머스 ] 369게임 ( JS )

2024. 7. 21. 19:54·Algorithm/Javascript

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

 

프로그래머스

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

programmers.co.kr

 


[ 문제 ]

 

[ 내 풀이 ]

function solution(order) {

    // 주어진 숫자를 문자열로 변환하고 split로 쪼개서 배열화
    let orderArr = order.toString().split('');
    
    // 찾아야하는 문자열들을 선언
    let numToClap = ['3','6','9'];
    
    // 조건에 만족할 떄, 카운트할 변수 초기화
    let count = 0;
    
    // 주어진 문자열을 반복문을 돌며 조건에 만족하는지 확인하고
    // .. 만족하면 count를 1증가
    for(let i=0; i<orderArr.length; i++){
        if(numToClap.includes(orderArr[i])){
            count++;
        }
    }
    
    return count;
}

 

[ 다른 풀이 ]

// 숫자를 toString을 통해 문자열로 변환한것은 동일했으나
// .. 전개연산자와 정규식을 사용하여 배열안에 조건에 만족하는 값들만을 전개하였고
// .. 이 배열의 length를 구함으로써 개수를 찾는 방법이었다.

function solution(order) {
    var answer = [...order.toString().matchAll(/[3|6|9]/g)].length;
    return answer;
}
// 위 코드보다 더 짧게 코딩되어 신기해서 가져왔습니다.

function solution(order) {
    return (''+order).split(/[369]/).length-1;
}

// '' + order : 숫자인 order을 문자열로 변환합니다.
// .split(/[369]/) : 정규 표현식 /[369]/을 사용하여 문자열을 3, 6, 9 중 하나를 기준으로 분할합니다. 
//                 : 정규 표현식 /[369]/은 문자열에서 3, 6, 9 중 하나가 있는 모든 위치에서 분할합니다.
// .length-1 : 분할된 배열의 길이를 구하고 -1 합니다.
//           : 예를 들어, 12345에서 3을 기준으로 분할하게되면 2개의 요소가 생기게되고,
//           : -1을 해주어 분할한 횟수를 구하는 것 입니다. 꽤나 신박한 방법이라고 생각했습니다.
// set과 has를 사용한 방법입니다.

function solution(order) {

	// 숫자 3, 6, 9를 포함하는 Set 객체를 생성합니다.
    // Set은 주어진 값이 포함되어있는지에 대한 여부를 빠르게 확인할 수 있는 자료구조입니다.
    const mySet = new Set([3,6,9]);
    
    // 숫자 order를 문자열로 변환하고 각 문자열을 개별요소로 가지는 배열로 분할합니다.]
    // 배열의 각 요소를 Number타입으로 변환한 후, mySet에 포함되는지 확인합니다.
    // 포함되어있다면 필터링된 배열에 남게됩니다.
    // .length를 통해 배열의 길이를 반환합니다.
    return String(order).split('')
                        .filter(num => mySet.has(Number(num)))
                        .length;
}
반응형
저작자표시 비영리 변경금지 (새창열림)

'Algorithm > Javascript' 카테고리의 다른 글

[ 프로그래머스 ] 대문자와 소문자 ( JS )  (7) 2024.07.23
[ 프로그래머스 ] 암호 해독 ( JS )  (2) 2024.07.23
[ 프로그래머스 ] 삼각형의 완성조건(1) ( JS )  (0) 2024.07.19
[ 프로그래머스 ] 배열 원소의 길이 ( JS )  (0) 2024.07.14
[ 프로그래머스 ] 컨트롤 제트 ( JS )  (0) 2024.07.13
'Algorithm/Javascript' 카테고리의 다른 글
  • [ 프로그래머스 ] 대문자와 소문자 ( JS )
  • [ 프로그래머스 ] 암호 해독 ( JS )
  • [ 프로그래머스 ] 삼각형의 완성조건(1) ( JS )
  • [ 프로그래머스 ] 배열 원소의 길이 ( JS )
heee1
heee1
FE 개발자를 희망하는 임희원 입니다.
  • heee1
    heee1.blog
    heee1
  • 전체
    오늘
    어제
    • 분류 전체보기 (69)
      • Front-end (1)
        • Javascript (4)
        • Typescript (1)
        • React (0)
        • Next.js (1)
        • Tool (1)
        • Git (1)
        • Prettier (0)
        • Test-Framework (1)
        • Vercel (1)
      • 교육 (28)
        • 항해99 : 웹개발 종합반 18기 (14)
        • 프로젝트 캠프 : React 2기 (5)
        • 코드잇 스프린트 : 단기심화 5기 (9)
      • Algorithm (29)
        • Javascript (24)
        • Python (5)
      • 코드 보관함 (1)
        • 배치스크립트 ( .bat ) (1)
  • 블로그 메뉴

    • 홈
  • 링크

    • github
  • 공지사항

  • 인기 글

  • 태그

    react-spring
    항해99
    node.js
    til
    모킹
    코드잇
    테스트 프레임워크
    css animation
    티스토리챌린지
    Python
    next.js
    자바스크립트
    jest
    오블완
    speed insights
    tailwindcss
    스프린트
    JavaScript
    백준
    Baekjoon
  • 최근 댓글

  • 최근 글

  • hELLO· Designed By정상우.v4.10.1
heee1
[ 프로그래머스 ] 369게임 ( JS )
상단으로

티스토리툴바