※ 글쓴이는 취미로 코딩을 익혀보는 사람이라 정확하지 않은 내용을 담고 있을 수 있다 ※
이번에 볼 문제는 백준 23252번 문제인 블록이다.
문제는 아래 링크를 확인하자.
https://www.acmicpc.net/problem/23252
23252번: 블록
아래 그림에 주어진 세 종류의 타일이 각각 $A$개, $B$개, $C$개 주어졌을 때 세로 길이가 2인 직사각형을 만들 수 있다면 Yes를, 없다면 No를 출력하는 프로그램을 작성하시오. 완성한 직사각형에는
www.acmicpc.net
덮이는 전체 칸의 개수가 짝수개가 아니면 세로길이가 2인 직사각형을 만들 수 없다.
세로길이가 2인 직사각형을 만들기 위해서는 ㄴ자 타일 하나당 1칸짜리 타일 하나를 대응시켜야만 한다는 점을 관찰하자.
마지막으로, 가로 두칸 타일만이 홀수개 존재한다면 세로길이가 2인 직사각형이 나올 수 없다.
위의 내용을 구현해 문제를 해결하자.
아래는 제출한 소스코드이다.
#include <iostream>
using namespace std;
typedef long long ll;
int main() {
ios::sync_with_stdio(0);
cin.tie(0);
int T; cin >> T;
while (T--) {
int x, y, z; cin >> x >> y >> z;
if (((x + z) % 2 == 0) && x >= z) {
if ((y & 1) && (x == 0)) cout << "No\n";
else cout << "Yes\n";
}
else cout << "No\n";
}
}
728x90
'BOJ' 카테고리의 다른 글
[BOJ 14710 // C++] 고장난 시계 (0) | 2022.07.03 |
---|---|
[BOJ 23251 // C++] 스물셋 (0) | 2022.07.03 |
[BOJ 14699 // C++] 관악산 등산 (0) | 2022.07.03 |
[BOJ 14715 // C++] 전생했더니 슬라임 연구자였던 건에 대하여 (Easy) (0) | 2022.07.03 |
[BOJ 14711 // C++] 타일 뒤집기 (Easy) (0) | 2022.07.02 |