프로그래머스 콜라 JAVA 풀이 (구현, 시뮬레이션)

2026. 6. 4. 19:18·코테(Solved.ac + Programmers)
728x90

🔗 문제 링크

https://school.programmers.co.kr/learn/courses/30/lessons/132267


📌 문제 개요

빈 병 a개를 가져다주면 콜라 b병을 받을 수 있는 마트가 있다.

현재 빈 병이 n개 있을 때, 더 이상 교환할 수 없을 때까지 반복하여 받을 수 있는 콜라의 총 개수를 구하는 문제이다.


📌 접근 방법

이 문제는 실제 교환 과정을 그대로 구현하는 시뮬레이션 문제이다.

현재 보유한 빈 병 수가 a개 이상인 동안 계속 교환을 진행한다.

  • 교환 가능한 횟수 계산
  • 받은 콜라 수 누적
  • 남은 빈 병 수 갱신

📌 핵심 아이디어

교환 가능한 횟수 : int exchange = n / a;

이번에 받는 콜라 수 : exchange * b

 

받은 콜라를 모두 마시면 다시 빈 병이 되므로

 

다음 보유 병 수 : (받은 콜라 수) + (교환 후 남은 빈 병 수)

n = (exchange * b) + (n % a);
 

📌 전체 코드

class Solution {
    public int solution(int a, int b, int n) {
        int answer = 0;

        while(n >= a){
            int exchange = n / a;

            answer += exchange * b;
            n = (exchange * b) + (n % a);
        }

        return answer;
    }
}

📄 정리

  • 교환 가능한 횟수는 n / a
  • 받은 콜라 수는 exchange * b
  • 받은 콜라는 다시 빈 병이 되므로 다음 계산에 포함
  • n < a가 되면 더 이상 교환할 수 없으므로 종료
  • 구현 난이도는 낮지만 병 수 갱신 공식을 정확히 이해하는 것이 핵심인 문제
728x90

'코테(Solved.ac + Programmers)' 카테고리의 다른 글

프로그래머스 모의고사 JAVA 풀이 (완전탐색)  (0) 2026.06.06
프로그래머스 명예의 전당 (1) JAVA 풀이 (우선순위 큐, PriorityQueue)  (0) 2026.06.05
카드 뭉치 JAVA 풀이 (구현, 문자열)  (0) 2026.06.03
프로그래머스 숫자 문자열과 영단어 JAVA 풀이 (문자열, replace)  (0) 2026.06.02
[프로그래머스] K번째수 JAVA 풀이 (알고리즘, 시간복잡도)  (0) 2026.05.28
'코테(Solved.ac + Programmers)' 카테고리의 다른 글
  • 프로그래머스 모의고사 JAVA 풀이 (완전탐색)
  • 프로그래머스 명예의 전당 (1) JAVA 풀이 (우선순위 큐, PriorityQueue)
  • 카드 뭉치 JAVA 풀이 (구현, 문자열)
  • 프로그래머스 숫자 문자열과 영단어 JAVA 풀이 (문자열, replace)
PUSH → MERGE → DEPLOY
PUSH → MERGE → DEPLOY
데이터 흐름과 운영 자동화를 설계하는 백엔드 개발자
  • PUSH → MERGE → DEPLOY
    Coding Dongin
    PUSH → MERGE → DEPLOY
  • 전체
    오늘
    어제
    • MEUN
      • 코테(Solved.ac + Programmers)
      • BootCamp(JAVA)
      • JAVA
      • SpringBoot
      • JavaScript
      • JSP
      • DB(SQL)
      • React
      • HTML_CSS
      • jQuery
      • SCSS
      • GSAP
      • 설치 + 꿀팁
      • 정보처리기사 오답노트
      • 정보처리기사 기출문제
  • 블로그 메뉴

    • 홈
    • 태그
    • 방명록
  • 링크

    • GIT
  • 공지사항

  • 인기 글

  • 태그

    실기
    자료구조
    알고리즘
    배열
    브루트포스
    dp
    정렬
    springboot
    구현
    문자열
    정보처리기사 실기 기출문제
    Level2
    level0
    코딩테스트
    시뮬레이션
    기출문제
    완전탐색
    정보처리기사
    프로그래머스
    피보나치
    수학
    정처기오답노트
    백준
    java
    자바
    백엔드개발자
    정처기실기
    level1
    정처기
    solved.ac
  • 최근 댓글

  • 최근 글

  • 250x250
  • hELLO· Designed By정상우.v4.10.4
PUSH → MERGE → DEPLOY
프로그래머스 콜라 JAVA 풀이 (구현, 시뮬레이션)
상단으로

티스토리툴바