-
2019 카카오 개발자 겨울 인턴십) 튜플 - Javascript 풀이Algorithm/프로그래머스 2022. 7. 27. 20:13
https://school.programmers.co.kr/learn/courses/30/lessons/64065?language=javascript
프로그래머스
코드 중심의 개발자 채용. 스택 기반의 포지션 매칭. 프로그래머스의 개발자 맞춤형 프로필을 등록하고, 나와 기술 궁합이 잘 맞는 기업들을 매칭 받으세요.
programmers.co.kr
문제를 읽어보면 코드를 아주 작성하기 쉬운 조건을 하나 줬습니다.
"중복되는 원소가 없는"
중복되는 원소가 없을 경우, 부분집합들의 집합 내에서 튜플을 구성하는 숫자 개수의 내림차순으로 튜플 순서가 결정되게 됩니다.
예를 들어 집합이 {{2}, {2, 1}, {2, 1, 3}, {2, 1, 3, 4}} 이렇게 주어졌다고 가정합시다.
원소 숫자의 개수를 세어보면
2: 4개
1: 3개
3: 2개
4: 1개
이를 개수의 내림차순으로 정렬하면 [2,1,3,4] 가 되고 이는 우리가 찾는 튜플과 같습니다.
부분집합을 보면 해당 자리의 원소는 앞의 집합의 원소를 다 가지고 있어야되기 때문에 다소 쉽게 찾을 수 있는 문제였습니다.
코드로 구현하면 다음과 같습니다.
function solution(s) { var answer = []; const check = new Map(); s.match(/\d+/g).forEach((v) => check.set(v, check.get(v) + 1 || 1)); [...check.keys()].forEach( (v) => (answer[check.size - check.get(v)] = Number(v)) ); return answer; }
'Algorithm > 프로그래머스' 카테고리의 다른 글
2019 KAKAO BLIND RECRUITMENT) 후보키 - Javascript 풀이 (0) 2022.08.01 2021 KAKAO BLIND RECRUITMENT) 순위 검색 - Javascript 풀이 (0) 2022.07.31 2020 카카오 인턴십) 수식 최대화 - Javascript 풀이 (0) 2022.07.27 2021 카카오 채용연계형 인턴십) 거리두기 확인하기 - Javascript 풀이 (0) 2022.07.26 2018 KAKAO BLIND RECRUITMENT[1차] 뉴스 클러스터링 (0) 2022.07.25