본문 바로가기
[프로그래머스][예산] 정렬을 이용한 풀이 https://school.programmers.co.kr/learn/courses/30/lessons/12982 프로그래머스 코드 중심의 개발자 채용. 스택 기반의 포지션 매칭. 프로그래머스의 개발자 맞춤형 프로필을 등록하고, 나와 기술 궁합이 잘 맞는 기업들을 매칭 받으세요. programmers.co.kr 문제에 대한 이해: 각 부서에 지원할 수 있는 전체 예산 금액 budget 이 정해져 있다. 정해진 금액 budget과 부서별로 필요한 예산이 담긴 배열 d가 주어질 때, 예산 한도 내에서 지원할 수 있는 최대 부서의 수를 구하라. 이 문제를 정리하는 이유: 부서별 필요 예산이 담긴 d를 오름차순으로 정렬하기만 하면 매우 쉽게 풀 수 있는 문제를 또 DFS로 풀려고 했다. 지원할 수 있는 부서의 .. 2023. 1. 23.
[백준][14889] Combinations을 이용한 풀이 https://www.acmicpc.net/problem/14889 14889번: 스타트와 링크 예제 2의 경우에 (1, 3, 6), (2, 4, 5)로 팀을 나누면 되고, 예제 3의 경우에는 (1, 2, 4, 5), (3, 6, 7, 8)로 팀을 나누면 된다. www.acmicpc.net 문제에 대한 이해: 선수들의 번호를 통해 주어진 행렬M에서 선수의 능력치를 찾을 수 있다. 1, 2, 4 번의 선수가 한 팀에 속한다면 해당 팀의 능력치는 M[1,2] + M[1, 4] + M[2, 1] + M[2, 4] + M[4, 1] + M[4, 2], 즉 1, 2, 4로 이룰 수 있는 원소의 수가 2개인 모든 집합에서 첫번째 원소를 행, 두번째 원소를 열로 보고 찾은 수의 합이다. 1번이 2번과 협업할 때, 2.. 2023. 1. 5.
[백준][2798] 브루트포스, Combinations을 이용한 풀이 https://www.acmicpc.net/problem/2798 문제에 대한 이해: 다수의 카드에서 3개의 카드만 뽑아 카드에 적힌 수를 합한다. 세 개의 카드에 적힌 수의 합은 T, 이 합들만 보아놓은 집합을 S이라고 부르도록 한다. S에 속한 T들은 M과 같거나 작아야 한다. M과 같은 T가 있다면 M(=T)를 리턴하고, M보다 작은 T들 중에서 가장 M과 근소한 T를 리턴한다. 근소하다는 것은 M-T이 가장 작다는 것을 의미한다. 문제유형: 카드 세 개를 뽑을 경우의 수를 브루트포스로 추출한다. 이렇게 모든 조합을 찾아야할 경우 Python에서 지원하는 combinations를 쓰면 편리하다. combinations는 주어진 자료형 안에 있는 원소로 만들 수 있는 모든 조합을 구해준다. from .. 2022. 12. 28.