반응형

코드포스(Codeforces) 1A Theatre Square 풀이 코드

C | C++ | Java | Python

Difficulty : *1000 (Math)


문제 해설

자, 기념일을 맞았으니 광장 새단장을 위해 바닥을 빈틈없이 꼼꼼하게 채워야 합니다. 타일이 튀어나오는 건 괜찮지만, 모자라면 안 돼요. 광장의 가로 세로, 그리고 정방형 타일의 한 변의 길이가 차례로 주어집니다. 광장 바닥을 빈틈없이 채울 수 있는 타일의 최소 개수를 알려주세요.

풀이

광장 가로세로 넓이를 각각 타일 길이로 나눕니다. 가로세로로 필요한 타일 갯수가 나왔으니 둘을 곱하면 답이 됩니다. 만약 나누어 떨어지지 않는 면이 있다면, 타일 길이가 모자라 빈틈이 생기므로 곱하기 전 하나를 더해줍니다.

코드

#include <stdio.h>
 
int main(){
    long long int n, m, a, x = 0, y = 0;
    scanf("%lld %lld %lld", &n, &m, &a);
    x = n / a;
    y = m / a;
    
    if(n % a != 0){
        x++;
    }
    if(m % a != 0){
        y++;
    }
    
    printf("%lld", x * y);
}
#include <iostream>
 
int main(){
    long long n, m, a, x, y;
    std::cin >> n >> m >> a;
    x = n / a;
    y = m / a;
    
    if(n % a != 0){
        x++;
    }
    if(m % a != 0){
        y++;
    }
    std::cout << x * y;
    return 0;
}
import java.util.Scanner;
 
public class Main {
    public static void main(String[] args) {
        long n, m, a, x = 0, y = 0;
        Scanner sc = new Scanner(System.in);
        
        n = sc.nextLong();
        m = sc.nextLong();
        a = sc.nextLong();
        x = n / a;
        y = m / a;
        
        if(n % a != 0){
            x++;
        }
        if(m % a != 0){
            y++;
        }
        System.out.println(x*y);
    }
}
n, m, a = map(int, input().split())
x = (int)(n / a)
y = (int)(m / a)
 
if (n % a) != 0:
    x += 1;
if (m % a) != 0:
    y += 1;
print((int)(x * y))

문제 출처

https://codeforces.com/contest/1/problem/A

반응형

+ Recent posts