KwanIk Devlog
article thumbnail

1. 문제

 

4796번: 캠핑

입력은 여러 개의 테스트 케이스로 이루어져 있다. 각 테스트 케이스는 한 줄로 이루어져 있고, L, P, V를 순서대로 포함하고 있다. 모든 입력 정수는 int범위이다. 마지막 줄에는 0이 3개 주어진다.

www.acmicpc.net

https://www.acmicpc.net/problem/4796

 

2. 풀이

'강산이는 휴가를 P일 중 L일만 사용할 수 있다'라는 것은 전체 V를 P로 나눈 몫에 L을 곱한 것만큼 휴가를 캠핑장을 사용할 수 있다는 말이다. 

 

중요한 것은 V를 P로 나눈 나머지를 곧바로 더해주면 안된다는 점이다. (L < P) 이므로, V % P가 L보다 클 수 있다는 점을 놓치지 않아야 통과할 수 있다. 즉, min(V % P, L) 값을 추가로 더해주면 풀이할 수 있다!

 

3. 소스코드

더보기
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;

        for (int i = 1; true; i++) {
            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) {
                break;
            }

            bw.write(String.format("Case %d: %d\n", i, V / P * L + Math.min(V % P, L)));
        }

        bw.close();
        br.close();
    }
}

 

 

GitHub - kwanik-kor/BOJ: Baekjoon Online Judge - explanation of solved problems and complete code

Baekjoon Online Judge - explanation of solved problems and complete code - GitHub - kwanik-kor/BOJ: Baekjoon Online Judge - explanation of solved problems and complete code

github.com

 

반응형
profile

KwanIk Devlog

@갈닉

노력하는 개발자가 되고자 합니다. GitHub이나 블로그 모두 따끔한 피드백 부탁드립니다 :)