문제 설명 https://school.programmers.co.kr/learn/courses/30/lessons/12936 프로그래머스 코드 중심의 개발자 채용. 스택 기반의 포지션 매칭. 프로그래머스의 개발자 맞춤형 프로필을 등록하고, 나와 기술 궁합이 잘 맞는 기업들을 매칭 받으세요. programmers.co.kr 문제 풀이 방법 이 문제는 순열 문제로 접근했다. 처음에는 직접 순열을 전부 구해 풀이를 진행했지만, 그렇게 하면 20! 만큼 구해야 되서 시간 초과가 발생했다. 그래서 참고한 글에서 주어진 k를 이용해 순서에 올 숫자를 구하는 방식을 이용한 풀이를 참고했다. 참고한 코드 const solution = (n, k) => { let arr = Array.from({length: n}, (..
순열
문제 설명 https://school.programmers.co.kr/learn/courses/30/lessons/72411 프로그래머스 코드 중심의 개발자 채용. 스택 기반의 포지션 매칭. 프로그래머스의 개발자 맞춤형 프로필을 등록하고, 나와 기술 궁합이 잘 맞는 기업들을 매칭 받으세요. programmers.co.kr 풀이 방법 이 문제는 주어진 메뉴들을 2가지 이상의 조합을 가지고 가장 많이 선택된 조합을 구하는 것이 중요한 문제라 생각했다. 하지만 문제 설명을 보면 같은 메뉴는 한 코스에 2번 이상 반복되면 안되고, 순서가 오름차순으로 해야 하기 때문에 메뉴 조합을 구할 땐 순열을 이용해 구해야한다. 메뉴의 갯수별로 코스 조합을 나눠서 구하고 그 조합의 길이가 구해야하는 길이와 같고, 주문된 횟수..
문제 설명 한자리 숫자가 적힌 종이 조각이 흩어져있습니다. 흩어진 종이 조각을 붙여 소수를 몇 개 만들 수 있는지 알아내려 합니다. 각 종이 조각에 적힌 숫자가 적힌 문자열 numbers가 주어졌을 때, 종이 조각으로 만들 수 있는 소수가 몇 개인지 return 하도록 solution 함수를 완성해주세요. 제한 사항 umbers는 길이 1 이상 7 이하인 문자열입니다. numbers는 0~9까지 숫자만으로 이루어져 있습니다. "013"은 0, 1, 3 숫자가 적힌 종이 조각이 흩어져있다는 의미입니다. 문제 풀이 방법 문자열로 들어오는 numbers를 split("")로 1개씩 나누어준다. 이번에는 Set()를 사용했다. Set()는 중복을 허용하지 않는 값을 모아놓은 특별한 컬렉션이다. 셋에 키가 없는 ..