[백준/JAVA] 13136번 Do Not Touch Anything

정은아·2024년 4월 19일

[알고리즘] 수학 모음

목록 보기
58/152
post-thumbnail

문제

내 풀이 1 : Math.max(R,C)로 한 뒤 나누기 - 실패

import java.io.BufferedReader;
import java.io.IOException;
import java.io.InputStreamReader;
import java.util.StringTokenizer;

public class Main extends Exception {
    public static void main(String[] args) throws IOException {
        // 가로 R 세로 C, CCTV가 수용 가능한 N*N 주어진다.
        // cctv는 정사각형만 찍을 수 있으므로, R*C로 구할 수 없다.
        // 그러므로 R이나 C 중 더 큰 범위의 수로 곱한 뒤, 나눠줘야 모두 촬영할 수 있다.

        BufferedReader br = new BufferedReader(new InputStreamReader(System.in));
        StringBuilder sb = new StringBuilder();
        StringTokenizer st = new StringTokenizer(br.readLine());

        long R = Long.parseLong(st.nextToken());
        long C = Long.parseLong(st.nextToken());
        long N = Long.parseLong(st.nextToken());

        long math_max = Math.max(R,C);
        long answer = (math_max * math_max) / (N * N);

        sb.append(answer);
        System.out.println(sb.toString());
    }
}

내 풀이 2 : 풀이 아예 다르게 하기

import java.io.BufferedReader;
import java.io.IOException;
import java.io.InputStreamReader;
import java.util.StringTokenizer;

public class Main extends Exception {
    public static void main(String[] args) throws IOException {
        // (R / N) , (C / N) 따로 구한다
        // 각 값이 나머지가 있을 때에는 +1 한다.
        // 그 후 곱한다.

        BufferedReader br = new BufferedReader(new InputStreamReader(System.in));
        StringBuilder sb = new StringBuilder();
        StringTokenizer st = new StringTokenizer(br.readLine());

        long R = Long.parseLong(st.nextToken());
        long C = Long.parseLong(st.nextToken());
        long N = Long.parseLong(st.nextToken());

        long garo = 0;
        long sero = 0;

        if (R % N == 0){
            garo = R / N;
        }else{
            garo = (R/N) + 1;
        }

        if (C % N == 0){
            sero = C / N;
        }else{
            sero = (C/N) + 1;
        }

        long answer = garo * sero;
        sb.append(answer);
        System.out.println(sb.toString());
    }
}

느낀점

문제를 너무 어렵게 해석하지 말자

profile
꾸준함의 가치를 믿는 개발자

0개의 댓글