Notice
Recent Posts
Recent Comments
Link
일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
1 | 2 | 3 | 4 | |||
5 | 6 | 7 | 8 | 9 | 10 | 11 |
12 | 13 | 14 | 15 | 16 | 17 | 18 |
19 | 20 | 21 | 22 | 23 | 24 | 25 |
26 | 27 | 28 | 29 | 30 | 31 |
Tags
- NLP
- github
- PytorchLightning
- Kaggle
- FDS
- rnn
- Kubernetes
- DeepLearning
- GIT
- 알고리즘
- wandb
- NaverAItech
- datascience
- python
- pep8
- 프로그래머스
- Matplotlib
- torchserve
- GitHub Action
- vscode
- leetcode
- autoencoder
- 코딩테스트
- pytorch
- 백준
- FastAPI
- docker
- 네이버AItech
- GCP
- 완전탐색
Archives
- Today
- Total
Sangmun
백준 1049번 기타줄 본문
https://www.acmicpc.net/problem/1049
그리디 알고리즘을 이용하면 쉽게 풀 수 있는 문제이다.
단순히 기타줄 세트와 낱개의 가격에서 가장 저렴한 비용만을 이용하면 쉽게 해결이 되는 문제이다.
최소가격을 결정하는 케이스는 3개뿐이라 3개의 케이스를 모두 계산을 해서 다시 최소값을 구하면 되는 문제이다.
import sys
input = sys.stdin.readline
n, m = map(int,input().split())
set_list = []
each_list = []
for _ in range(m):
a, b = map(int,input().split())
set_list.append(a)
each_list.append(b)
set_list.sort()
each_list.sort()
# 3가지 케이스가 존재함
# 그냥 낱개로 사기
# 그냥 세트로 다 사버리기
# 세트로 살수있는 만큼만 사고 나머지는 낱개로 사기
each_price = each_list[0]*n
number = n // 6
if n % 6:
number += 1
set_price = set_list[0] * number
number = n // 6
set_with_each_price = set_list[0]*number + each_list[0]*(n%6)
print(min(each_price, set_price, set_with_each_price))
'알고리즘 > 백준' 카테고리의 다른 글
백준 7490번 0 만들기 (0) | 2023.02.04 |
---|---|
백준 1449번 수리공 (0) | 2023.02.03 |
백준 11057 오르막 수 (0) | 2022.12.22 |
백준 11052번 카드 구매하기 파이썬 (0) | 2022.12.21 |
백준 9935번 문자열 폭발 (0) | 2022.12.14 |
Comments