백준/Greedy 5

[백준] 13305번 주유소

13305번: 주유소 표준 입력으로 다음 정보가 주어진다. 첫 번째 줄에는 도시의 개수를 나타내는 정수 N(2 ≤ N ≤ 100,000)이 주어진다. 다음 줄에는 인접한 두 도시를 연결하는 도로의 길이가 제일 왼쪽 도로부터 N-1 www.acmicpc.net 문제풀이 n = int(input()) // 4 a = list(map(int, input().split())) // 2 3 1 b = list(map(int, input().split())) // 5 2 4 1 res = 0 m = b[0] for i in range(n-1): if b[i]

백준/Greedy 2022.09.19

[백준] 1541번 잃어버린 괄호

1541번: 잃어버린 괄호 첫째 줄에 식이 주어진다. 식은 ‘0’~‘9’, ‘+’, 그리고 ‘-’만으로 이루어져 있고, 가장 처음과 마지막 문자는 숫자이다. 그리고 연속해서 두 개 이상의 연산자가 나타나지 않고, 5자리보다 www.acmicpc.net 문제풀이 a = input().split('-') num= [] for i in a : partsum = 0 s = i.split('+') for j in s: partsum += int(j) num.append(partsum) n = num[0] for i in range(1, len(num)): n -= num[i] print(n) 문제해석 그리디 - 단위로 정보를 받아 들인다. + 단위로 정보를 받아들여서 더한다. 총 나눈다. 총정리 정보를 나누어서 ..

백준/Greedy 2022.09.19

[백준] 11399번 ATM

11399번: ATM 첫째 줄에 사람의 수 N(1 ≤ N ≤ 1,000)이 주어진다. 둘째 줄에는 각 사람이 돈을 인출하는데 걸리는 시간 Pi가 주어진다. (1 ≤ Pi ≤ 1,000) www.acmicpc.net 문제 풀이 n = int(input()) time = list(map(int, input().split())) time.sort() answer = 0 for x in range(1, n+1): answer += sum(time[0:x]) print(answer) 문제해석 그리디 문제 리스트를 받아서 정렬을 해준다 ( 최소 값을 구하기 위해서는 정렬을 해주어서 앞에 있는 사람은 시간이 적은 걸린 사람이 해야한다 왜냐하면 누적이기 때문에 앞에가 크면 계속 그 값이 반복 되기 때문이다) 누적 합을..

백준/Greedy 2022.09.19

[Greedy] 1931번 회의실 배정

1931번: 회의실 배정 (1,4), (5,7), (8,11), (12,14) 를 이용할 수 있다. www.acmicpc.net 문제풀이 n = int(input()) s = [] for i in range(n): first, second = map(int, input().split()) s.append([first, second]) s = sorted(s, key=lambda a: a[0]) s = sorted(s, key=lambda a: a[1]) last = 0 cnt = 0 for i, j in s: if i >= last: cnt += 1 last = j print(cnt) 문제해석 핵심 : 그리디 알고리즘 우선 for 반복문을 통해 2차원 리스트를 구성한다. (입력값을 다 받는다) 정렬후 비..

백준/Greedy 2022.09.14

[Greedy] 11047번 동전 0

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 문제 풀이 n, k = map(int, input().split()) m = [] num = 0 for i in range(n): m.append(int(input())) for i in range(n - 1, -1, -1): if k == 0: break if m[i] > k: continue num += k // m[i] k %= m[i] print(num) 문제 해석 그리디 알고리즘 돈은 리스트..

백준/Greedy 2022.09.14