본문 바로가기
728x90

Baekjoon/[Code.plus] 알고리즘 기초 2/261

[BOJ/백준] 14501 퇴사 ● [문제번호 14501] 퇴사 https://www.acmicpc.net/problem/14501 14501번: 퇴사 첫째 줄에 백준이가 얻을 수 있는 최대 이익을 출력한다. www.acmicpc.net ● 알아야 할 것 : DFS : 재귀 ● 풀이 과정 : DFS의 구현형태에서 크게 벗어나지 않지만, 상담을 연속되지 않게 진행하는 경우들을 고려해야한다. : {현재} + {다음 상담까지 빈 공간} + {다음 상담 소요기간} ≤ 퇴사일 이라는 조건을 잘 고려해서 구현했다. : Base Case는 어떻게 구현할 지 고민하였으나 '항상 퇴사전날까지 일하는 것이 최대 상담료인 건 아니다' 이므로 매 재귀마다 확인하게 만들고, Base Case는 만들지 않았다. ● 주의 할 것 : 각 배열들의 index를 주의.. 2021. 9. 9.
[BOJ/백준] 1759 암호 만들기 ● [문제번호 1759] 암호 만들기 https://www.acmicpc.net/problem/1759 1759번: 암호 만들기 첫째 줄에 두 정수 L, C가 주어진다. (3 ≤ L ≤ C ≤ 15) 다음 줄에는 C개의 문자들이 공백으로 구분되어 주어진다. 주어지는 문자들은 알파벳 소문자이며, 중복되는 것은 없다. www.acmicpc.net ● 알아야 할 것 : DFS : 재귀 ● 풀이 과정 : 앞서 풀었던 DFS문제와 결이 같다. 이전에는 숫자를 가지고 순열 또는 조합을 만들었다면 이번에는 문자를 가지고 조합을 만드는 과정이다. ● 주의 할 것 : 맨 처음 입력된 문자 배열을 오름차순으로 정렬을 해야한다. 그래야 오름차순으로 탐색하며 저장을 한다. : L과 C를 어느 곳에 사용되어야 하는지 주의해서 .. 2021. 9. 9.
[BOJ/백준] 9095 1, 2, 3 더하기 ● [문제번호 9095] 1, 2, 3 더하기 https://www.acmicpc.net/problem/9095 9095번: 1, 2, 3 더하기 각 테스트 케이스마다, n을 1, 2, 3의 합으로 나타내는 방법의 수를 출력한다. www.acmicpc.net ● 알아야 할 것 : DP 문제집에 있는 문제 https://pirateturtle.tistory.com/202 ● 풀이 과정 : DP의 풀이과정 (Bottom - Up) 1. 테이블 정의하기 → 각 index의 값은 1, 2, 3의 합으로 나타내는 방법의 수를 나타낸다. 2. 점화식 찾기 → dp[index] = dp[index - 1] + dp[index - 2] + dp[index - 3] dp[index]는 dp[index - 1] 에서 구한.. 2021. 9. 9.
[BOJ/백준] 15666 N과 M (12) ● [문제번호 1] 1 https://www.acmicpc.net/problem/15666 15666번: N과 M (12) 한 줄에 하나씩 문제의 조건을 만족하는 수열을 출력한다. 중복되는 수열을 여러 번 출력하면 안되며, 각 수열은 공백으로 구분해서 출력해야 한다. 수열은 사전 순으로 증가하는 순서로 출력해 www.acmicpc.net ● 알아야 할 것 : DFS (깊이 우선 탐색) : 재귀 ● 풀이 과정 : N과 M (9) 에서 오름차순을 위해 num 배열에 마지막에 넣은 숫자보다 큰 숫자인지 확인하는 작업을 추가하고 중복허용을 위해 visited 제거한다. ● 주의 할 것 : NULL ● 참고 할 것 : N과 M (9) https://pirateturtle.tistory.com/251 ● 풀이 코드.. 2021. 9. 8.
728x90