반응형
버섯 먹는 것을 중단해야할 때를 잘 처리해줘야되는 문제입니다.
풀이방법
1. 100과의 차이 계산 : 현재버섯을 먹었을 때 100과의 차이, 현재 ans에 저장된 변수의 값과 100의 차이를 구해줍니다.
2. ans값 갱신여부 판단
2-1. 만약 ans의 gap(차이)가 더 크다면 현재 버섯을 먹는것이 이득이므로 ans값을 sum으로 갱신해줍니다.
2-2. 만약 100과의 차이가 서로 같다면 더 큰 값을 ans변수로 갱신해줍니다.
3. 답 출력
Code
#include <bits/stdc++.h>
using namespace std;
int main(){
int sum = 0;
int ans = 0;
int score[10];
for(int i = 0; i < 10; i++) cin >> score[i];
for(int i = 0; i < 10; i++){
sum += score[i];
int sumGap = abs(100 - sum);
int ansGap = abs(100 - ans);
if(sumGap < ansGap) ans = sum;
else if(sumGap==ansGap) ans = max(ans,sum);
}
cout << ans <<'\n';
}
Test Case
input
1
1
1
1
1
1
1
1
91
2
답 : 101
input
1
1
1
1
1
1
1
1
91
3
답 : 99
'Algorithm > Implementation' 카테고리의 다른 글
(C++) - 백준(BOJ) 13300번 : 방 배정 답 (0) | 2021.01.09 |
---|---|
(C++) - 백준(BOJ) 1051번 : 숫자 정사각형 답 (0) | 2021.01.09 |
(C++) - 프로그래머스(2018 KAKAO BLIND) : [1차] 셔틀버스 답 (0) | 2021.01.06 |
(C++) - 프로그래머스(찾아라 프로그래밍 마에스트로) : 폰켓몬 답 (0) | 2021.01.01 |
(C++) - 프로그래머스(2017 팁스타운) : 짝지어 제거하기 답 (0) | 2020.12.31 |