본문 바로가기

알고리즘/백준93

[백준/C,C++] 13305번: 주유소 www.acmicpc.net/problem/13305 13305번: 주유소 표준 입력으로 다음 정보가 주어진다. 첫 번째 줄에는 도시의 개수를 나타내는 정수 N(2 ≤ N ≤ 100,000)이 주어진다. 다음 줄에는 인접한 두 도시를 연결하는 도로의 길이가 제일 왼쪽 도로부터 N-1 www.acmicpc.net 주유소의 리터당 가격이 제일 싼 곳에서 더 싼 도시를 가기 전까지의 거리만큼 주유하면 되는 문제입니다. 적어도 더 싸게 주유가 가능한 2번째 도시를 가기 전까지는 첫 도시에서 리터당 가격 5를 주고 주유를 할 수밖에 없습니다. 두 번째 도시에서는 마지막 도시에 도착할 때까지 보다 싼 주유가 불가능하기에 거리 4를 이동하기 위해 필요한 모든 기름을 리터당 가격 2를 주고 주유를 해야 합니다. 5 x.. 2021. 3. 14.
[백준/C,C++] 1541번: 잃어버린 괄호 www.acmicpc.net/problem/1541 1541번: 잃어버린 괄호 첫째 줄에 식이 주어진다. 식은 ‘0’~‘9’, ‘+’, 그리고 ‘-’만으로 이루어져 있고, 가장 처음과 마지막 문자는 숫자이다. 그리고 연속해서 두 개 이상의 연산자가 나타나지 않고, 5자리보다 www.acmicpc.net 괄호를 쳐서 해당 식의 값을 최솟값으로 만들기 위해선 덧셈끼리 묵어 가장 큰 수를 만든 뒤 빼야 합니다. 가령 100+200-300+400과 같은 식이 있다면 (100+200)-(300+400)으로 식을 고쳐주면 최솟값이 나오죠. 그런데 100+200-300+400-500+600+700-800+900과 같은 식이 있다면 100+200-(300+400)-(500+600+700)-(800+900)으로 식을 고.. 2021. 3. 14.
[백준/C,C++] 11399번: ATM www.acmicpc.net/problem/11399 11399번: ATM 첫째 줄에 사람의 수 N(1 ≤ N ≤ 1,000)이 주어진다. 둘째 줄에는 각 사람이 돈을 인출하는데 걸리는 시간 Pi가 주어진다. (1 ≤ Pi ≤ 1,000) www.acmicpc.net 총 대기 시간은 누적된 대기 시간이 작을수록 작아집니다. 걸리는 시간 3 1 4 3 2 시간의 합 3 4 8 11 13 3 + 4 + 8 + 11 + 13 = 39분 걸리는 시간 1 2 3 3 4 시간의 합 1 3 6 9 13 1 + 3 + 6 + 9 + 13 = 32분 #include #include #include using namespace std; int main(void) { int n; cin >> n; vector p(n); f.. 2021. 3. 13.
[백준/C,C++] 11047번: 동전 0 www.acmicpc.net/problem/11047 11047번: 동전 0 첫째 줄에 N과 K가 주어진다. (1 ≤ N ≤ 10, 1 ≤ K ≤ 100,000,000) 둘째 줄부터 N개의 줄에 동전의 가치 Ai가 오름차순으로 주어진다. (1 ≤ Ai ≤ 1,000,000, A1 = 1, i ≥ 2인 경우에 Ai는 Ai-1의 배수) www.acmicpc.net 정말 쉬운 문제입니다. 만들고자 하는 합 K를 큰 가치를 가진 동전부터 나눈 몫의 합이 필요한 동전의 최솟값입니다. 물론 몫이 구해질 때마다 만들어진 가치를 K에서 빼줘야 합니다. #include #include #include using namespace std; int main(void) { int n, k; cin >> n >> k; vect.. 2021. 3. 12.