티스토리 뷰

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

 

프로그래머스

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

programmers.co.kr

 


 

filter()

function solution(X, Y) {
    const common = []
    for(let i = 0; i < 10; i++) {
        const XLength = X.split("").filter(v => Number(v) === i).length
        const YLength = Y.split("").filter(v => Number(v) === i).length
        for(let j = 0; j < Math.min(XLength, YLength); j++ ) {
            common.push(i)
        }
    }
    common.sort((a, b) => b - a)
    if(common[0] === 0) return "0"
    return common.length > 0 ? common.join("") : "-1"
}
  1. 반복문에서 X와 Y를 배열로 만든 후 filter를 이용해 해당 i 값만 남김
    1. X와 Y의 length를 구해 몇 개의 i가 있는지 확인
    2. Math.min() 이용해 X의 길이, Y의 길이가 더 작은 것을 찾아 작은 걸 기준으로 answer 배열에 추가
    3. 내림차순 정렬하여 반환
      1. 공통된 것이 없을 경우 -1 반환
      2. 0 판별

테스트 11-15번 초수가 엄청 많이 나왔다..

댓글
공지사항
최근에 올라온 글
최근에 달린 댓글
Total
Today
Yesterday
링크
TAG
more
«   2026/01   »
1 2 3
4 5 6 7 8 9 10
11 12 13 14 15 16 17
18 19 20 21 22 23 24
25 26 27 28 29 30 31
글 보관함