728x90

문제 내용, 조건, 예시는 프로그래머스 사이트 참조
이 문제는 예제 풀이에 자세히 나와 있기 때문에 알고리즘을 작성해주면 된다.
1) 빈병 a개를 주면 콜라 b개를 주기 때문에 교환비는 a:b가 되고 콜라를 얻는 수는 빈병 곱하기 교환비다. (n/a)로 정수를 뽑아주고 곱하기 b를 해주면 된다. (n/a)*b
2) 교환비에 맞지 않게 남은 공병은 별도로 기억해둔다 (n%a)
3) 얻은 콜라는 마셔서 공병으로 만들어서 남은 공병이랑 같이 더해서 다시 1) 반복
(n = gain_cokeEA + have_left_EmptyCokeEA)
4) 얻은 콜라 수가 a보다 작아질 때 (a>n) 종료한다.
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 | int solution(int a, int b, int n) { int answer = 0; while(true) { if(a > n) { break; } int gain_cokeEA = ((n / a) * b); int have_left_EmptyCokeEA = (n % a); answer += gain_cokeEA; cout << "gain_cokeEA : " << gain_cokeEA << endl; cout << "have_left_EmptyCokeEA : " << have_left_EmptyCokeEA << endl; cout << "remain_cokeEA : " << gain_cokeEA + have_left_EmptyCokeEA << endl << endl; n = gain_cokeEA + have_left_EmptyCokeEA; } return answer; } | cs |
동작 시간은 특별한 것이 없기 때문에 빠르게 넘어갔다.

무언가 특별한 규칙을 찾아보려했지만 그러지 못하였다

↓↓↓↓↓↓ 유익했다면 하트 뿅 ♥ ↓↓↓↓↓↓
728x90
반응형
'프로그래밍 > 프로그래머스' 카테고리의 다른 글
Lv1_[성격유형 검사하기, C++] 알고리즘 정리 - 프로그래머스 (0) | 2022.11.10 |
---|---|
Lv1_[신고결과 받기, C++] 알고리즘 정리 - 프로그래머스 (0) | 2022.11.08 |
Lv1_[부족한 금액 계산하기, C++] 알고리즘 정리 - 프로그래머스 (0) | 2022.11.08 |
Lv1_[옹알이(2), C++] 알고리즘 정리 - 프로그래머스 (map, 재귀함수 사용) (0) | 2022.11.03 |
Lv1_[햄버거 만들기, C++] 알고리즘 정리 - 프로그래머스 (0) | 2022.10.31 |
댓글