
아래 프로그래머스 로고를 클릭하면 해당 문제로 이동합니다 😀

사실 이 문제는 우리 스터디 팀원이 아이디어를 다 내어줬다 ,,, 나는 이런 생각조차 못했다 ,,, 샤라웃 투 서라씨 ,,,
이 문제는 아이디어를 생각하느냐 + 정규식을 쓸 줄 아느냐가 핵심인 것 같다.
정규식으로 숫자만 걸러낸 후, 각 숫자의 빈도수를 체크한다.
그리고 내림차순으로 정렬하고 그 숫자를 배열로 리턴해주면 된다.
정규식에 대한 정리는 추후에 ,, 추가 ,, 예정 ,,
import re
from collections import Counter
def solution(s):
numbers = re.findall(r'\d+', s)
count = Counter(numbers)
sorted_nums = sorted(count.items(), key = lambda x: -x[1])
return [int(num) for num, _ in sorted_nums]
function solution(s) {
const numbers = s.match(/\d+/g);
const count = {};
numbers.forEach((num) => {
count[num] = (count[num] || 0) + 1;
});
const sorted = Object.entries(count).sort((a, b) => b[1] - a[1]);
return sorted.map(([num]) => +num)
}
