본문 바로가기
PS/BOJ

[백준] 1246. 온라인 판매(c++)

by backend 개발자 지망생 2024. 12. 24.

https://www.acmicpc.net/problem/1246

1. 내림차순 정렬

2. max(ans, p(i) * (i+1))

이 조건만 생각하다가

달걀 개수가 고객의 수보다 넘는 경우를 분기에 안 넣어줬고,

i+1은 해줬는데 조건문에는 i>n이라고 해서 틀렸다.

 

문제를 읽고 말 그대로 수행하는 것은 정말 중요하다는 생각이 든다.

 


 

#include<iostream>
#include <cstdio>
#include <algorithm> 
#include <vector>
#include <string>
#include <map>
#include <limits.h>
#include <queue>
#include <set>
#include <math.h>
#include <stack>

using namespace std;

int main() {
	ios::sync_with_stdio(0);
	cin.tie(0);
	cout.tie(0);

	int n, m;

	cin >> n >> m;
	
	vector<int> arr;

	int temp, ans = 0, ans_value = 0;

	for (int i = 0; i < m; i++) {
		cin >> temp;
		arr.push_back(temp);
	}

	// 내림차 순
	sort(arr.rbegin(), arr.rend());

	for (int i = 0; i < m; i++) {
		if (i >= n)
			break;

		if (ans < arr[i] * (i + 1)) {
			ans = arr[i] * (i + 1);
			ans_value = arr[i];
		}
	}

	cout << ans_value << ' ' << ans;

    return 0;
}