반응형

백준 8760번 Schronisko 풀이 코드

C | C++ | Java | Python

폴란드어(Polish)


문제 해설

W*K 공간에 사람을 최대한 많이 눕혀야 합니다. 한 사람은 정확히 2칸을 차지하며, 가로 세로 방향은 상관없습니다. 맨 처음에 Z번 시도 횟수가 주어지고 그다음 줄부터 W, K 값이 총 Z회 입력됩니다. 최대 몇 명을 눕힐 수 있을까요?

풀이

한 사람이 2칸을 차지하고 방향 전환을 허용하는 문제이므로 단순히 공간 크기(W*K)를 2로 나눈 값을 출력하면 됩니다. 만약 공간 크기가 짝수라면 공간이 딱 떨어지게 누울 수 있을 것이고, 홀수라면 1*1 크기 공간이 하나 남게 됩니다.

코드

#include <stdio.h>
 
int main() {
    int k, i, n, m;
    scanf("%d", &k);
    for(i = 0; i < k; i++){
        scanf("%d %d", &m, &n);
        printf("%d\n", n*m/2);
    }
    return 0;
}
#include <iostream>

int main() {
    int n, m, k;
    std::cin>>k;
    for(int i = 0; i < k; i++){
        std::cin>>n>>m;
        std::cout<<n*m/2<<std::endl;
    }
    return 0;
}
import java.util.Scanner;

public class Main {
    public static void main(String[] args) {
        Scanner sc = new Scanner(System.in);
        int k = sc.nextInt();
        for(int i = 0; i < k; i++){
            int n = sc.nextInt();
            int m = sc.nextInt();
            System.out.println(n*m/2);
        }
    }
}
k = int(input())
for _ in range(k):
    n, m = map(int, input().split())
    print(n*m//2)

문제 출처

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

반응형

+ Recent posts