algorithm 36

백준 2839 설탕배달

https://www.acmicpc.net/problem/2839 2839번: 설탕 배달 상근이는 요즘 설탕공장에서 설탕을 배달하고 있다. 상근이는 지금 사탕가게에 설탕을 정확하게 N킬로그램을 배달해야 한다. 설탕공장에서 만드는 설탕은 봉지에 담겨져 있다. 봉지는 3킬로그 www.acmicpc.net 📌 해결순서 1. 사용하는 봉지의 갯수를 최소화 해야 하므로, 3kg 보다 5kg를 최대한 많이 이용해야한다. 2. 설탕의 무게가 5로 나누어질 때까지 3을 빼주고 cnt += 1 을 해준다. 3. while 문을 빠져나왔을때 설탕의 무게가 음수라면 정확하게 N kg를 만들수 없음을 의미한다. 📌 코드 while문 에서도 else를 사용해서 훨씬 코드를 간결하게 만들수 있다. import sys input ..

algorithm/Greedy 2022.08.29

백준 1744 두 수 묶기

https://www.acmicpc.net/problem/1744 1744번: 수 묶기 길이가 N인 수열이 주어졌을 때, 그 수열의 합을 구하려고 한다. 하지만, 그냥 그 수열의 합을 모두 더해서 구하는 것이 아니라, 수열의 두 수를 묶으려고 한다. 어떤 수를 묶으려고 할 때, 위치에 www.acmicpc.net 📌 해결순서 문제를 완전히 이해하는데도 시간이 많이 걸렸고, 두 수를 묶는걸 어떻게 코드로 구현을 해야 하는지에 대해 정말 많은 시간을 써가면서 고민했다.. :( 아래 표는 , 두 수를 묶는 경우에 어떤 수식을 사이에 넣어야지 더 커지는지에 대해 정리한 표이다 숫자 숫자 수식 양수(>1) 양수(>1) * 음수(

algorithm/Greedy 2022.08.29

백준 2812 크게 만들기

https://www.acmicpc.net/problem/2812 2812번: 크게 만들기 N자리 숫자가 주어졌을 때, 여기서 숫자 K개를 지워서 얻을 수 있는 가장 큰 수를 구하는 프로그램을 작성하시오. www.acmicpc.net 📌 해결순서 1 (시간초과) 일단 지워야할 숫자를 다 지우고 나면 남은 숫자는 추가해야하는 숫자들이기 때문에 지우는 방식이 아닌, 시작부터 숫자를 추가해가는 방법을 생각했다 # 추가하는 경우 1. 뒤에 기준 숫자보다 큰 수가 없는 경우 : 기준 숫자의 인덱스 + 남은 사이즈가 배열의 크기를 초과하지 않으면 추가 2. 뒤에 기준 숫자보다 큰 수가 있는 경우 : 그 큰 수의 인덱스 + 남은 사이즈가 배열의 크기를 초과 하면 추가 3. 비교해야하는 수의 갯수와 남은 사이즈가 같은..

algorithm/Greedy 2022.08.28

백준 13305 주유소

https://www.acmicpc.net/problem/13305 13305번: 주유소 표준 입력으로 다음 정보가 주어진다. 첫 번째 줄에는 도시의 개수를 나타내는 정수 N(2 ≤ N ≤ 100,000)이 주어진다. 다음 줄에는 인접한 두 도시를 연결하는 도로의 길이가 제일 왼쪽 도로부터 N-1 www.acmicpc.net 📌 해결순서 문제는 길고 복잡해 보이지만 문제를 이해하고 나서, 딱 그리디 유형의 표준문제라고 생각했다. 문제를 이해한 후 내가 생각한 해결 아이디어는 다음과 같다. 1. 첫번째 도시에서 다음 도시로 가기 위해서는 첫번째 도시의 기름 가격이 얼마든지 상관없이 기름가격 * 도로길이 만큼 비용을 사용한다 2. 두번째 도시부터는 첫번째 도시의 기름가격보다 두번째 도시의 기름가격이 더 싸면..

algorithm/Greedy 2022.08.28

백준 1931 회의실 배정

https://www.acmicpc.net/problem/1931 1931번: 회의실 배정 (1,4), (5,7), (8,11), (12,14) 를 이용할 수 있다. www.acmicpc.net 📌 해결순서 1. 최대한 많은 회의를 진행하기 위해서 시작시간이 빠른 회의보다 종료시간이 빠른 회의를 기준으로 생각한다 2. 종료시간이 빠른 회의 기준 오름차순 정렬한다 3. 주의할 점은 시작시간에 대해서도 정렬을 해야한다 ex) (5, 5) , (4, 5) 순으로 입력된 경우를 생각해보면, 종료시간 기준 정렬을 하더라도 입력시 순서가 유지 되기때문에, 사용할 수 있는 회의실 1개를 놓치게 된다. 4. 모든 정렬이 끝난 후, 확인해야 하는 회의의 시작시간이 앞 회의가 끝나는 시간보다 같거나 크다면 추가한다. 📌 ..

algorithm/Greedy 2022.08.28

백준 1946 신입사원

https://www.acmicpc.net/problem/1946 1946번: 신입 사원 첫째 줄에는 테스트 케이스의 개수 T(1 ≤ T ≤ 20)가 주어진다. 각 테스트 케이스의 첫째 줄에 지원자의 숫자 N(1 ≤ N ≤ 100,000)이 주어진다. 둘째 줄부터 N개 줄에는 각각의 지원자의 서류심사 성 www.acmicpc.net 📌 해결 순서 문제에서 알수 있듯이 서류 , 면접 둘중 하나만 다른 지원자들보다 뒤쳐지지 않으면 탈락하지 않는다. 1. 우선 서류심사가 높은 순서대로 면접 지원자들을 정렬한다 2. 정렬이 되면, 나보다 뒤에 있는 지원자 때문에 탈락할 수 없다 (서류심사 순위가 더 높기 때문에) 3. 앞에있는 지원자와 비교해보면, 서류심사가 나보다 높기 때문에 나보다 앞에 있는 모든 지원자의 ..

algorithm/Greedy 2022.08.26