Posts 백준 12437 새로운 달력 (Small) java
Post
Cancel

백준 12437 새로운 달력 (Small) java

문제

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

문제해설

새로운 달력을 만든다.
총 월수, 월당 일수, 주당 일수가 주어지면
달력을 만들기 위해 총 몇 줄이 필요한지 구하면 된다.

문제풀이

이 문제는 간단한 문제이다.
달력을 반복문을 이용해 한 달씩 몇 개의 줄이 필요한지 구한다.
다만 한 달씩 딱 떨어지게 끝나지 않으면 한 줄이 더 필요하기 때문에 그걸 구하는게 중요하다.

1
2
3
4
5
6
7
8
9
10
int res = 0, tmp = 0;
for (int i = 0; i < a; i++) {
    res += (b + tmp) / c;
    if ((b + tmp) % c != 0) {
        res++;
        tmp = (b + tmp) % c;
    } else {
        tmp = 0;
    }
}

그래서 위와 같이 tmp변수를 만들어 한 달이 딱 떨어지는지 판단을 해주었다.

전체코드

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
import java.io.BufferedReader;
import java.io.InputStreamReader;
import java.util.StringTokenizer;

public class Main {
    public static int t;

    public static void main(String[] args) throws Exception {
        BufferedReader br = new BufferedReader(new InputStreamReader(System.in));
        StringTokenizer st = new StringTokenizer(br.readLine());

        t = Integer.parseInt(st.nextToken());
        for (int k = 1; k <= t; k++) {
            st = new StringTokenizer(br.readLine());
            int a = Integer.parseInt(st.nextToken());
            int b = Integer.parseInt(st.nextToken());
            int c = Integer.parseInt(st.nextToken());

            int res = 0, tmp = 0;
            for (int i = 0; i < a; i++) {
                res += (b + tmp) / c;
                if ((b + tmp) % c != 0) {
                    res++;
                    tmp = (b + tmp) % c;
                } else {
                    tmp = 0;
                }
            }
            System.out.println("Case #" + k + ": " + res);
        }
        br.close();
    }
}

백준 12971 숫자 놀이 java

백준 5052 전화번호 목록 c++

Comments powered by Disqus.