반응형 Problem Solving/Greedy17 [그리디] 백준 1339번: 단어 수학 https://www.acmicpc.net/problem/1339 1339번: 단어 수학 첫째 줄에 단어의 개수 N(1 ≤ N ≤ 10)이 주어진다. 둘째 줄부터 N개의 줄에 단어가 한 줄에 하나씩 주어진다. 단어는 알파벳 대문자로만 이루어져있다. 모든 단어에 포함되어 있는 알파벳은 최대 www.acmicpc.net import collections n = int(input()) dct = collections.defaultdict(int) for i in range(n): s = input() r = 10**(len(s)-1) for j in range(len(s)): dct[s[j]] += r r /= 10 table = [] for key, val in dct.items(): table.append.. 2021. 5. 26. [그리디] 백준 1946번: 신입 사원 https://www.acmicpc.net/problem/1946 1946번: 신입 사원 첫째 줄에는 테스트 케이스의 개수 T(1 ≤ T ≤ 20)가 주어진다. 각 테스트 케이스의 첫째 줄에 지원자의 숫자 N(1 ≤ N ≤ 100,000)이 주어진다. 둘째 줄부터 N개 줄에는 각각의 지원자의 서류심사 성 www.acmicpc.net case = int(input()) for i in range(case): candidates = int(input()) lst = [] for j in range(candidates): sco1, sco2 = map(int, input().split()) lst.append([sco1,sco2]) lst = sorted(lst, key=lambda x: x[0]) score.. 2021. 5. 25. [그리디] 백준 2217번: 로프 https://www.acmicpc.net/problem/2217 2217번: 로프 N(1 ≤ N ≤ 100,000)개의 로프가 있다. 이 로프를 이용하여 이런 저런 물체를 들어올릴 수 있다. 각각의 로프는 그 굵기나 길이가 다르기 때문에 들 수 있는 물체의 중량이 서로 다를 수도 있다. 하 www.acmicpc.net 그리디인지 잘 모르겠다. 조금 생각하면 풀이가 보이는 문제! n = int(input()) ropes = [] for i in range(n): ropes.append(int(input())) ropes.sort() tones = [] for i in range(len(ropes)): rope = ropes[i] tones.append(rope*n) n -= 1 print(max(tone.. 2021. 5. 25. [그리디] 백준 1541번: 잃어버린 괄호 https://www.acmicpc.net/problem/1541 1541번: 잃어버린 괄호 첫째 줄에 식이 주어진다. 식은 ‘0’~‘9’, ‘+’, 그리고 ‘-’만으로 이루어져 있고, 가장 처음과 마지막 문자는 숫자이다. 그리고 연속해서 두 개 이상의 연산자가 나타나지 않고, 5자리보다 www.acmicpc.net 그리디 유형의 문제고, 답을 어떻게 낼지 생각을 해야한다. 괄호를 원하는 만큼 칠 수 있는 상황이라면, 다음이 가능하다. 예를 들어 10+20+30-40+50+60-70-80+90-100가 있을 때 괄호를 적절히 쳐서 최솟값을 만들어보면 다음과 같이 된다. 10+20+30-(40+50+60)-70-(80+90)-100 즉 식을 10+20+30-40-50-60-70-80-90-100으로 만들 .. 2021. 5. 25. [그리디] 백준 11399번: ATM https://www.acmicpc.net/problem/11399 11399번: ATM 첫째 줄에 사람의 수 N(1 ≤ N ≤ 1,000)이 주어진다. 둘째 줄에는 각 사람이 돈을 인출하는데 걸리는 시간 Pi가 주어진다. (1 ≤ Pi ≤ 1,000) www.acmicpc.net n = int(input()) nums = list(map(int,input().split())) nums.sort() sum = 0 temp = 0 for i in range(len(nums)): temp += nums[i] sum += temp print(sum) 기본적인 그리디 문제 2021. 5. 22. 이전 1 2 3 다음 반응형