탐욕법(5)
-
[Programmers] 구명보트 - Python
1. 문제 설명 2. 제한 조건 & 입출력 예 3. 시행착오 뭔가 정렬을 하면 안 될 것 같았다. 살짝 뻔하다고 생각해서. 3.1. 첫 번째 접근. Stack에 Limits 뺀 값을 저장하고 대조 for 문을 돌려서 Stack의 수보다 작으면 빼는 식으로 Stack의 요소 수를 늘렸다. 하지만 이 방법은 보트에 2명을 태운다는 조건을 지키지 못했으므로 정답이 아니었다. # Method 1. def solution(people, limit): stack = [100] for one in people: n = 0 for i in range(0, len(stack)): if one 0: if n_list[subs - i] > 0: n_list[subs - i] -= 1 n_list[n] -= 1 count +..
2023.10.07 -
[Programmers] 큰 수 만들기 - Python
1. 문제 설명 2. 제한 조건 & 입출력 예 3. 시행착오 3.1. 첫 번째 접근. 단순 정렬 혹시나 하는 마음으로, 그냥 정렬하고 앞부터 끊었다. 당연히 정답이 아니었다. 3.2. 두번째 접근. i와 i+1의 비교 i번째 수와 i+1번째 수를 비교하고, i+1 번째 수가 더 크면 i번째 수를 제거하는 방식으로 문제를 풀었다. 이 경우, 4177252841, 4 이렇게 주어졌을 때, 정답이 77841이 나왔다. 즉, 무조건 큰 수를 살린다고 결괏값이 커지는 것은 아니란 이야기다. 3.3. 세번째 접근. K를 범위로 하여 Number를 자르고, 그 안에서 최고값 살리기 Step 1과 Step 2로 나누어, 맨 앞자리 숫자를 확정하는 단계가 그 뒤에 숫자들을 정해 가는 단계로 나눠 진행했다. 테스트 10에..
2023.10.05 -
[BOJ/Python] #1004번: 어린왕자
https://www.acmicpc.net/problem/1004 1004번: 어린 왕자 입력의 첫 줄에는 테스트 케이스의 개수 T가 주어진다. 그 다음 줄부터 각각의 테스트케이스에 대해 첫째 줄에 출발점 (x1, y1)과 도착점 (x2, y2)이 주어진다. 두 번째 줄에는 행성계의 개수 n이 주 www.acmicpc.net 문제 어린 왕자는 소혹성 B-664에서 자신이 사랑하는 한 송이 장미를 위해 살아간다. 어느 날 장미가 위험에 빠지게 된 것을 알게 된 어린 왕자는, 장미를 구하기 위해 은하수를 따라 긴 여행을 하기 시작했다. 하지만 어린 왕자의 우주선은 그렇게 좋지 않아서 행성계 간의 이동을 최대한 피해서 여행해야 한다. 아래의 그림은 어린 왕자가 펼쳐본 은하수 지도의 일부이다. 빨간 실선은 어린..
2022.07.27 -
[BOJ/C++] #1789번: 수들의 합
https://www.acmicpc.net/problem/1789 1789번: 수들의 합 첫째 줄에 자연수 S(1 ≤ S ≤ 4,294,967,295)가 주어진다. www.acmicpc.net 문제 서로 다른 N개의 자연수의 합이 S라고 한다. S를 알 때, 자연수 N의 최댓값은 얼마일까? 입력 첫째 줄에 자연수 S(1 ≤ S ≤ 4,294,967,295)가 주어진다. 출력 첫째 줄에 자연수 N의 최댓값을 출력한다. 예제 입력 1 200 예제 출력 1 19 풀이 탐욕법을 이용하면 쉽게 풀 수 있다. N이 최대가 되기 위해선 작은 수부터 더해야 함을 알아야 한다. * int형이 나타낼 수 있는 최대 숫자와 문제가 주는 최대 범위가 맞는지 꼭 확인할 것. #include #include #include us..
2022.07.25 -
[Algorithm] 탐욕법(Greedy) 알고리즘 개념 및 예제
이번 포스팅에선 탐욕법(그리디) 알고리즘에 대해 알아보겠습니다. 개념과 알고리즘을 사용하는 조건을 알아보고, 동전 문제를 통해 활용 예시를 살펴보겠습니다. * 언어는 C++로 진행됩니다. 목차 📃 그리디 알고리즘 개념 및 조건 📃 그리디 알고리즘 예제 - 동전 문제 그리디 알고리즘 개념 및 조건 📌 개념 그리디 알고리즘은 가장 최선의 선택만을 쫒아가는 알고리즘입니다. 다이나믹 프로그래밍의 경우, 다양한 경우들을 하나하나 살펴보면서 최선의 수를 찾고자 했습니다. 그와 달리, 그리디 알고리즘은 오직 눈앞의 최선만을 쫒아 갑니다. 그리디 알고리즘은 Best Solution을 찾기 위한 알고리즘은 아닙니다. 그저 최선을 쫓다보면 결과도 좋겠지 하는 막연한 기대가 구현된 알고리즘이라 할 수 있습니다. 이때문에 현..
2022.07.18