일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
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 |
Tags
- 자료구조
- C++ library
- JUCE 튜토리얼
- 알고리즘
- go
- JUCE library
- LOB
- Docker
- Nebula
- go channel
- 운영체제
- C언어
- 백준
- C++ gui
- gui
- C++ gui 라이브러리
- vim-go
- C++
- 연결리스트
- JUCE라이브러리
- OS
- 리듬게임
- c++ heap
- BOJ
- a tour of go
- 공룡책
- 코딩
- tour of go
- JUCE
- 프로그래밍
Archives
- Today
- Total
CafeM0ca
[BOJ] 1049번 기타줄 본문
반응형
문제인식
문제링크
생활속에서 이러한 유형을 자주 접할 수 있다.
최저가를 찾는 문제다.
- (0) 가장 싼 패키지와 가장 싼 낱개의 가격을 찾는다.
- 낱개 6개 == 패키지 1개이므로, (1) 가격이 낱개 6개가 <= 패키지이면, 모두 낱개로 구매
- (2) n >= 6이고, 패키지 < 낱개 6이면, 패키지로 n < 6일때까지 구매
- (3) n < 6 일때, 패키지 < (낱개 * n)이면 패키지로 구매, (4) (낱개 * n) < 패키지면 (낱개 * n)으로 구매
#include <iostream> using namespace std;
int main(int argc, char *argv[])
{
cin.tie(0);
cin.sync_with_stdio(false);
int n,m;
int min_piece = 1001;
int min_package = 1001;
cin >> n >> m;
for(int i=0; i<m; i++) {
int package, piece;
cin >> package >> piece;
// (0) 단계
min_piece = min(min_piece, piece);
min_package = min(min_package, package);
}
// n개 사야함 제일 싸게 맞출 수 있는 것은?
int sum = 0;
if(min_piece * 6 <= min_package){ // (1) 단계
cout << min_piece * n << endl;
}
else {
sum += (n/6 * min_package); // (2) 단계
n %= 6;
if(n*min_piece > min_package) // (3) 단계
sum += min_package;
else // (4) 단계
sum += n*min_piece;
cout << sum << endl;
}
return 0;
}
```
반응형
'Programming > 백준' 카테고리의 다른 글
[BOJ] 1987 알파벳 (0) | 2020.01.18 |
---|---|
[BOJ] 1107 리모컨 (0) | 2020.01.14 |
[BOJ] 11279 최대 힙 (0) | 2020.01.10 |
[BOJ] 2156 포도주 시식 (0) | 2019.12.23 |
[BOJ] 9020 골드바흐의 추측 (0) | 2019.03.07 |
Comments