본문 바로가기

백준 알고리즘44

[BOJ]17213번: 과일 서리 문제: https://www.acmicpc.net/problem/17213 재귀를 통해 맨 앞 과일종류부터 0개부터 ~ 최대치까지 뽑을 수 있게 작성하면 해결할 수 있습니다. solution(int idx, int rest) idx: 현재 뽑아야 할 과일 종류 rest: 남은 뽑아야 할 과일 갯수 코드: https://github.com/cottory/algorithm/blob/master/BOJ/BOJ17213.cc 2020. 5. 31.
[BOJ]16118번: 달빛 여우 문제: https://www.acmicpc.net/problem/16118 다익스트라 응용문제입니다. 달빛 여우는 무난히 다익스트라를 구하면 되겠지만, 문제가 되는 것은 달빛 늑대의 경우입니다. 늑대가 하나의 그루터기(노드)에 도착하는 방법은 1. 빠른 속도로 도착하거나 / 2. 느린 속도로 도착하거나 이렇게 두 가지 방법 중 하나로 도착하게 됩니다. 그러니 늑대의 경우는 빠르고 / 느리게 움직이는 경우를 모두 dist 배열로 저장해줘야합니다. 중요한 건, 우선순위큐에 넣을 자료형과 늑대의 dist를 어떻게 정의할까의 문제입니다. 1. 우선순위큐에 넣을 자료형: tuple(long long, int ,int) 튜플의 의미: 현재 노드까지 오는데 걸린 거리 + 다음 탐색 때 늑대의 속도 tuple[0]: .. 2020. 5. 29.
[BOJ]17490번: 일감호에 다리 놓기 문제: https://www.acmicpc.net/problem/17490 UNION & FIND 문제입니다. M개의 공사구간이 있으면 강의동은 M개의 컴포넌트로 나뉘게 됩니다. 1. M개의 컴포넌트로 나누기 (O(N)) 2. 각 컴포넌트마다 다리를 놓는데 최소비용인 강의동 구하기(O(N)) 3-1. M개의 컴포넌트의 각 최솟값들의 합 K 이면, NO 연결상태는 graph[N][2]를 통해 표현하였습니다. graph[idx][0] = 1이면, idx번째 강의동이 idx-1 강의동과 끊어져 있음. graph[idx][1] = 1이면, idx번째 강의동이 idx+1 강의동과 끊어져 있음. (단, 원형이므로 0번째 강의동과 N-1번째 강의동의 연결관계는 반대로 처리해줘야 합니다) 끝으로 예외 처리해줄 것은 M 2020. 5. 28.
[BOJ]14888번: 연산자 끼워넣기 문제: https://www.acmicpc.net/problem/14888 브루트포스문제입니다. N 제한이 작으므로 모든 연산자 순서의 경우의 수를 생성한 후 하나씩 값을 직접 구해보면됩니다. 코드: https://github.com/cottory/algorithm/blob/master/BOJ/BOJ14888.cc 2020. 5. 26.