일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
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 |
Tags
- FSM
- QueryDSL
- 스택
- Unity
- 내일배움캠프
- 순열
- 유클리드호제법
- Firebase
- Inventory
- 스파르타내일배움캠프
- Photon
- UE4
- 구현
- UnrealEngine
- 스파르타내일배움캠프TIL
- 유니티
- 워크플로
- 알고리즘
- Unity3d
- unityui
- 포톤
- 문자열
- BFS
- c#
- Unity2D
- C++
- 이분탐색
- 프로그래머스
- 언리얼엔진
- 해시
Archives
- Today
- Total
개발 낙서장
[프로그래머스][수학][JAVA] 콜라 문제 본문
문제 제목
https://school.programmers.co.kr/learn/courses/30/lessons/132267
프로그래머스
코드 중심의 개발자 채용. 스택 기반의 포지션 매칭. 프로그래머스의 개발자 맞춤형 프로필을 등록하고, 나와 기술 궁합이 잘 맞는 기업들을 매칭 받으세요.
programmers.co.kr
풀이 방법
이건 알고리즘이라기보단 수학 문제가 맞는 것 같다.😅
콜라병 n개가 있고 마트에서는 a개당 b개의 새 콜라를 준다고 한다.
콜라는 전부 마시는 것을 전제로 하기 때문에 새 콜라 또한 결국 빈 콜라병이 된다.
따라서 계속 나누면서 해답을 찾아나가면 된다.
예를 들어 현재 15개의 콜라병을 갖고 있는데 마트에선 3개당 2개의 새 콜라를 준다고 해보자.
- 15개를 내고 10개의 콜라병을 받는다.
- 10개 중 9개의 콜라병을 내고 6개의 콜라병을 받으니 7개가 된다.
- 7개 중 6개의 콜라병을 내고 4개의 콜라병을 받으니 5개가 된다.
- 5개 중 3개의 콜라병을 내고 2개의 콜라병을 받으니 3개가 된다.
- 마지막으로 3개의 콜라병을 내 2개의 콜라병을 받는다.
그럼 총 10 + 6 + 4 + 2 + 2 = 24개의 콜라병을 받게 된다.
소스 코드
더보기
class Solution {
public int solution(int a, int b, int n) {
int answer = 0;
while(n >= a) {
answer += (n / a) * b;
n = (n / a) * b + n % a;
}
return answer;
}
}
'Algorithm > Programmers' 카테고리의 다른 글
[프로그래머스][알고리즘][JAVA] 2016년 (0) | 2024.01.03 |
---|---|
[프로그래머스][자료구조][JAVA] 명예의 전당 (1) (0) | 2024.01.02 |
[프로그래머스][문자열][JAVA] 푸드 파이트 대회 (1) | 2023.12.28 |
[프로그래머스][효율][C++] 달리기 경주 (0) | 2023.08.03 |
[프로그래머스][반복][C#] 마법의 엘리베이터 (0) | 2023.01.12 |
Comments