반응형
https://www.acmicpc.net/problem/8760
8760번: Schronisko
Kiedy Hektor zajmował się realizacją projektu HektorJudge, jego kolega Wiktor uznał, że życie nie powinno składać się wyłącznie z siedzenia przy komputerze i wybrał się na wycieczkę w góry. Kiedy wieczorem dotarł do schroniska ze zdziwieni
www.acmicpc.net
공식을 찾아 푼 문제였습니다.
📕 풀이방법
📔 입력 및 초기화
테스트 케이스 수 t, 열 w, 행 k를 선언 후 t에 입력을 받습니다. 이 후 while loop를 수행하며 매 테스트 케이스 마다 w, k에 입력받습니다.
📔 풀이과정
인접한 두 칸을 차지하도록 배치했을 때 최대 인원을 구하기 위해서 4가지 경우가 있습니다.
1. 행, 열 모두 짝수
이 경우엔 딱 들어맞도록 배치가 가능합니다. 행 / 2 * 열만큼 배치할 수 있습니다.
2. 열만 짝수
1 X 2로 배치해야하므로 가장 이상적인 배치는 짝수에 2칸짜리를 놓는다면 딱 들어맞을 수 있습니다.
3. 행만 짝수
2.과 마찬가지 입니다.
4. 행, 열 모두 홀수
어떻게 배치해도 딱 들어맞진 않습니다. 최대한 채운 뒤 마지막 1줄이 남게 되는데 이를 1자형으로 최대한으로 배치해줍니다.
📔 정답출력
경우에 맞게 출력해줍니다.
📕 Code
#include <bits/stdc++.h>
using namespace std;
int t, w, k;
int main(){
cin >> t;
while(t--){
cin >> w >> k;
if(!(w % 2) && !(k % 2))
cout << w / 2 * k;
else if(!(w % 2))
cout << w / 2 * k;
else if(!(k % 2))
cout << k / 2 * w;
else
cout << min(w, k) / 2 * max(w, k) + max(w, k) / 2;
cout << '\n';
}
}
'Algorithm > Math' 카테고리의 다른 글
(Python) - 백준(BOJ) 23972 : 악마의 제안 (0) | 2022.03.11 |
---|---|
(C++) - 백준(BOJ) 12840 : 창용이의 시계 (0) | 2022.03.09 |
(C++) - 백준(BOJ) 8678 : Zbiór (0) | 2022.02.02 |
(C++) - 백준(BOJ) 8658 : Liczba (0) | 2022.01.30 |
(C++) - 백준(BOJ) 8246 : Stół (0) | 2022.01.25 |