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
- 자료구조 복습
- 숙명여자대학교 정보보안 동아리
- Sookmyung Information Security Study
- hackerrank
- 머신러닝
- siss
- XSS Game
- 숙명여자대학교 정보보안동아리
- HTML
- 풀이
- PHP 웹페이지 만들기
- C언어
- 파이썬
- c
- 생활코딩
- 백준
- Javascript
- 기계학습
- BOJ
- c++
- hackctf
- WarGame
- 웹페이지 만들기
- The Loard of BOF
- Python
- CSS
- BOJ Python
- SWEA
- lob
- 드림핵
Archives
- Today
- Total
혜랑's STORY
[HackerRank] Luck Balance 본문
Practice > Algorithms > Greedy > Luck Balance
code
int luckBalance(int k, vector<vector<int>> contests) {
int sum = 0;
sort(contests.begin(), contests.end(), greater<vector<int>>());
for(int i=0; i<contests.size(); i++){
if(contests[i][1] != 0 && k>0){
k--;
sum += contests[i][0];
}
else if(contests[i][1] == 0)
sum += contests[i][0];
else
sum -= contests[i][0];
}
return sum;
}
- 최대한 남은 행운 포인트를 높게 만드는 문제이다. 규칙은 이기면 필요한 행운 포인트만큼 차감하고 지면 필요한 행운 포인트만큼 더해준다. 이때 중요도가 1인 것은 k만큼 경기에서 질 수 있다. (중요도 1 - k 수만큼 꼭 이겨야 함)
- 따라서 내림차순으로 정렬을 한 뒤, 중요도가 1이고 k가 0보다 크면 k를 감소시키고 행운 포인트를 증가시켰다.
- 중요도가 0인 것은 져도 상관없는 경기이므로 모두 행운 포인트를 더하였고 중요도는 1이지만 져도 괜찮은 수가 남아있지 않다면 어쩔 수 없이 경기에서 이기고 행운 포인트를 차감했다.
결과
'2021 SISS 21기 활동 > 여름방학 C언어' 카테고리의 다른 글
[HackerRank] Maximum Perimeter Triangle (0) | 2021.08.25 |
---|---|
[HackerRank] Grid Challenge (0) | 2021.08.23 |
[HackerRank] Marc's Cakewalk (0) | 2021.08.22 |
[HackerRank] Staircase (0) | 2021.08.22 |
[HackerRank] Funny String (0) | 2021.08.12 |