Algorithm/Greedy Algorithm
-
[백준 1049번] 기타줄 (Java 풀이)Algorithm/Greedy Algorithm 2022. 2. 15. 20:54
백준알고리즘 1049번 : 기타줄 필요한 기타줄을 사기위해 얼마의 돈을 필요로 하냐 묻는 문제이다. 약간의 특이사항이 있다면, 가격이 최소가 되는 선에서 구매한다는 가정하에, 필요한 기타줄의 갯수 이상으로 기타줄을 구매해도 된다는 점이다. 패키지 가격과 낱개의 가격을 브랜드별로 나눌 필요는 없다. 둘 사이의 연관관계가 전혀 없기 때문이다. 따라서 패키지 가격의 최솟값과 낱개 가격의 최솟값만 구해준 뒤, 적절한 조건문을 사용하여 계산하도록 해주었다. 풀이 과정 1. 패키지 가격과 낱개의 가격을 받아 각 가격의 최솟값을 산출 2. 패키지 가격이 낱개 가격에 6을 곱한것 보다 저렴한가? 등등의 조건문을 통해 정답을 산출 소스 ▽ 더보기 import java.io.BufferedReader; import jav..
-
[백준 1715번] 카드 정렬하기 (Java 풀이)Algorithm/Greedy Algorithm 2022. 2. 14. 19:01
백준알고리즘 1715번 : 카드 정렬하기 Queue와 배열을 동시에 사용하여 풀었다. 처음에는 '받은 숫자들 중 가장 작은 두 숫자는 총 숫자의 갯수-1 만큼, 그 다음 작은 숫자는 총 숫자의 갯수-2만큼..... 제을 큰 숫자는 1만큼 더해주면 아닌가?' 라고 생각했다. [ 10, 20 ,30, 40 을 받았다고 할때 (10+20) 비교, (10+20+30) 비교, (10+20+30+40) 비교하여 정답이 (10+20)+(10+20+30)+(10+20+30+40) = 190 이 나오는 것처럼 ] 다만 이 논리에는 작은 두 숫자를 더한 값이 새로운 집합에서 최솟값이라는 보장이 없다는 것이다. 예를들어 [ 50, 60, 70, 80 ] 값을 받았다면, (50+60)을 비교한 뒤, [70+80]을 비교해야하..