728x90 320x100 💻 하나씩 차곡차곡/백준알고리즘 (Python,Java)13 백준 2503번 야구게임 파이썬 문제 링크 : https://www.acmicpc.net/problem/2503 구현from itertools import permutationsN = int(input())arr = [ list(input().split()) for _ in range(N)]cnt = 0# 3자리 무작위 수 뽑기 (순열)for per in permutations(range(1, 10), 3): ok = True for num, st, bl in arr: real_st = real_bl = 0 for i in range(3): if str(per[i]) == num[i] : real_st += 1 elif str(per[i]) in num: real_bl += 1 if int(st) != real_.. 2024. 12. 12. 백준 1461번 파이썬 문제 링크 : https://www.acmicpc.net/problem/1461 구현N, M = map(int, input().split())arr = list(map(int, input().split()))# 양수와 음수 분리pos = []neg = []for i in arr: if i > 0: pos.append(i) else: neg.append(-i)# 내림차순 정렬pos.sort(reverse=True)neg.sort(reverse=True)dists = []for p in pos[::M]: dists.append(p)for n in neg[::M]: dists.append(n)answer = 2 * sum(dists) - max(dists)print(answer)그리디 알고리즘 활용 풀이#.. 2024. 12. 11. 백준 1026번 파이썬 문제 링크 : https://www.acmicpc.net/problem/1026 구현N = int(input())arr1 = list(map(int, input().split()))arr2 = list(map(int, input().split()))arr1.sort()arr2.sort(reverse=True)answer = 0for i in range(N): answer += arr1[i] * arr2[i]print(answer)그리디 알고리즘을 활용하나는 오름차순 정렬, 나머지 하나는 내림차순 정렬을 하여 서로 곱하여 모두 더해주는 방식으로 품. (+) 풀이arr2.sort(reverse=True)arr2 = sorted(arr2)[::-1]위 두개의 정렬 방법은 동일하다. for i in rang.. 2024. 12. 10. 백준 5585번 파이썬 문제 링크 : https://www.acmicpc.net/problem/5585 구현coins = [500, 100, 50, 10, 5, 1]money = 1000 - int(input())cnt = 0for coin in coins: cnt += money // coin money %= coinprint(cnt)그리디 알고리즘 활용 2024. 12. 6. 백준 1182번 파이썬 문제링크 : https://www.acmicpc.net/problem/1182 구현from itertools import combinationsN, S = map(int, input().split())arr = list(map(int, input().split()))num = 0for i in range(1, N + 1): for comb in combinations(arr, i): print(comb, i) if sum(comb) == S: num += 1print(num)부르트 포스 알고리즘 활용.combinations 함수를 활용. 2024. 11. 14. 백준 23246번 파이썬 문제 링크 : https://www.acmicpc.net/problem/23246 구현player = int(input())input_score = [list(map(int, input().split())) for _ in range(player)]input_score = sorted(input_score, key=lambda x: (x[1] * x[2] * x[3], x[1] + x[2] + x[3], x[0]))for i in input_score[:3]: print(i[0], end=" ")세 순위를 곱한 점수가 낮은 선수가 우위 -> 오름차순곱한 값이 같을 땐 합산 점수가 낮은 선수가 우위 -> 오름차순합산 점수가 같을 때 등번호가 낮은 선수가 우위 -> 오름차순Sorted() 함수 커스텀 하기... 2024. 10. 15. 이전 1 2 3 다음 728x90 320x100