본문 바로가기
PS/Baekjoon

[Baekjoon] 4796 - 캠핑

by 서현 SEOHYEON 2023. 8. 6.

📝 문제

 

 

 

🔑 풀이 과정

· V: 캠핑장을 사용할 수 있는 전체 기간

 

· 캠핑장을 최대한 많이쓰려면, P일중 앞의 L일을 사용하면 되는것이다.

 

· 풀이를 그림으로 나타낸 것

- (V를 P로 나눈 몫 * L)을 일단 구해준다.

- 그 후, (V - (V를 P로 나눈 몫 * P)) 가 L보다 크거나 같다면 L을 더해주고, 작으면 그 값 자체를 더해준다,

 

 

 

🔓 답안

import java.io.*;
import java.util.StringTokenizer;

public class Main {

    public static void main(String[] args) throws IOException {
        BufferedReader br = new BufferedReader(new InputStreamReader(System.in));
        BufferedWriter bw = new BufferedWriter(new OutputStreamWriter(System.out));
        StringTokenizer st;
        StringBuilder sb = new StringBuilder();

        int caseNum = 1;
        while(true){
            st = new StringTokenizer(br.readLine());

            int L = Integer.parseInt(st.nextToken());
            int P = Integer.parseInt(st.nextToken());
            int V = Integer.parseInt(st.nextToken());

            if((L == 0) && (P == 0) && (V == 0))
                break;

            int a = V / P;
            int ans = a * L;

            if((V - a * P) >= L)
                ans += L;
            else
                ans += (V - a * P);

            sb.append("Case ").append(caseNum).append(": ").append(ans).append("\n");

            caseNum++;
        }

        bw.write(sb.toString());
        bw.flush();
        bw.close();
    }

}

 

 

 

🖤 알고리즘 분류

- 수학

- 그리디 알고리즘

'PS > Baekjoon' 카테고리의 다른 글

[Baekjoon] 7569 - 토마토  (0) 2023.08.08
[Baekjoon] 7562 - 나이트의 이동  (0) 2023.08.07
[Baekjoon] 10988 - 팰린드롬인지 확인하기  (0) 2023.08.05
[Baekjoon] 11727 - 2×n 타일링 2  (0) 2023.08.04
[Baekjoon] 9461 - 파도반 수열  (0) 2023.08.03

댓글