본문 바로가기

Algorithm/CodeUp

[CodeUp_Java] Q2009 : 아메리카노

반응형

안녕하세요! Plitche(플리체)입니다.
이번 포스팅의 주제는 Q2009 : 아메리카노 (자바, JAVA)입니다.

Intro

Question

문제 설명

학교 앞 카페에서 아메리카노를 한 잔을 사면 쿠폰을 한 장 받을 수 있다.

이 쿠폰은 카페에서 요구하는 필요 개수(N)를 채우면 아메리카노 한잔으로 다시 교환 할 수 있다.

그런데 이 가게는 특이하게도 쿠폰을 모아 아메리카노로 교환할 때에도 쿠폰을 또 한 장 준다.

현재 영일이가 가진 쿠폰의 개수(K)와 카페에서 요구하는 필요 쿠폰 개수(N)가 입력되면, 최대한 먹을 수 있는 아메리카노의 개수를 계산하는 프로그램을 작성하시오.

입력

현재 영일이가 가진 쿠폰 개수(K)와 카페에서 요구하는 필요 쿠폰 개수(N)이 공백으로 구분되어 입력된다.
(1<= K <= 2,000), (1 < N < 1000)

출력

영일이가 먹을 수 있는 최대 아메리카노 개수를 출력한다.

예시

  • 입력 : 10 3
  • 출력 : 4

Solution (풀이)

  • 풀이 : 메모리 11184, 시간 : 66
public class Answer1 {

    public static void main(String[] args) throws IOException {
        BufferedReader br = new BufferedReader(new InputStreamReader(System.in));
        StringTokenizer st = new StringTokenizer(br.readLine(), " ");
        int coupone = Integer.parseInt(st.nextToken()); // 쿠폰 개수 입력 받기
        int count = Integer.parseInt(st.nextToken()); // 필요 쿠폰 개수 입력 받기

        int coffee = 0;
        while (coupone>=count) { // 잔여 쿠폰 개수가 필요 쿠폰 개수보다 많을때
            int share = 0;
            coffee += coupone/count; // 커피 개수를 잔여쿠폰/필요쿠폰 몫 만큼 더하기   
            share = coupone/count; // 몫을 share변수에 저장
            coupone = coupone%count+share; // 남은 쿠폰 개수를 잔여쿠폰%필요쿠폰 나머지에 그 몫을 더한다. 
        }

        System.out.println(coffee);
    }

}

Ranking(순위)

반응형