https://school.programmers.co.kr/learn/courses/30/lessons/132267
프로그래머스
코드 중심의 개발자 채용. 스택 기반의 포지션 매칭. 프로그래머스의 개발자 맞춤형 프로필을 등록하고, 나와 기술 궁합이 잘 맞는 기업들을 매칭 받으세요.
programmers.co.kr
콜라 문제라는 문제를 Java로 풀이하겠습니다.
이 문제는 주어진 규칙에 따라 빈 병을 주고받는 과정을 통해 얻을 수 있는 최종적인 콜라의 병 수를 계산하는 것입니다.
먼저 콜라를 받기 위해 마트에 주어야 하는 빈 병의 수를 나타내는 변수 'a', 빈 병 'a'개를 가져다주면 마트가 주는 콜라의 병 수를 나타내는 변수 'b', 그리고 상빈이가 현재 가지고 있는 빈 병의 수를 나타내는 변수 'n'이 주어집니다.
저는 다음과 같이 문제를 풀이하였습니다.
class Solution {
public int solution(int a, int b, int n) {
int totalCola = 0;
int emptyBottles = 0;
while (n >= a) {
totalCola += n / a * b;
emptyBottles = n % a + n / a * b;
n = emptyBottles;
}
return totalCola;
}
}
- 변수 totalCola와 emptyBottles 각각 0으로 초기화합니다.
totalCola는 최종적으로 받게 되는 전체 콜라의 병 수를 저장할 변수입니다.
emptyBottles는 반복할 때마다 업데이트되는 남은 빈 병의 수를 저장하는 변수입니다. - 주어진 빈 병의 변수 a보다 클 경우에만 콜라를 받을 수 있으므로, 이를 확인하는 while 반복문을 사용합니다.
- 반복문 내에서는 다음을 수행합니다.
- 콜라를 받고 난 뒤 빈 병의 수를 업데이트합니다.
totalCola에는 현재 받은 콜라의 수를 누적하고 emptyBottles에는 현재 남은 빈 병의 수를 저장합니다.
n에는 emptyBottles의 값을 할당하여 반복을 계속합니다. - 반복문이 종료되면 최종적으로 받을 수 있는 전체 콜라의 병 수 totalCola를 반환합니다.
위의 과정을 통하여 문제를 풀이하였습니다.
다른 이견이 있으시다면 댓글에 자유롭게 남겨주세요!

'Algorithm > CodingTest' 카테고리의 다른 글
[Programmers] Level.1 체육복 (Java) (1) | 2023.10.28 |
---|---|
[Programmers] Level.1 가장 가까운 같은 글자 (Java) (0) | 2023.10.27 |
[Programmers] Level.1 달리기 경주(Java) (0) | 2023.10.24 |
[Programmers] Level.1 삼총사(Java) (0) | 2023.10.24 |
[Programmers] Level.1 가운데 글자 가져오기(Java) (0) | 2023.10.22 |