CafeM0ca

[BOJ] 1049번 기타줄 본문

Programming/백준

[BOJ] 1049번 기타줄

M0ca 2020. 1. 14. 16:13
반응형

문제인식

문제링크
생활속에서 이러한 유형을 자주 접할 수 있다.
최저가를 찾는 문제다.

  1. (0) 가장 싼 패키지와 가장 싼 낱개의 가격을 찾는다.
  2. 낱개 6개 == 패키지 1개이므로, (1) 가격이 낱개 6개가 <= 패키지이면, 모두 낱개로 구매
  3. (2) n >= 6이고, 패키지 < 낱개 6이면, 패키지로 n < 6일때까지 구매
  4. (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