본문 바로가기

BAEKJOON/수학

백준 8674번 [Tabliczka](C++) -yes6686- 티스토리

728x90
반응형
SMALL

백준 문제 풀이: 8674 [Tabliczka]


문제 링크: https://www.acmicpc.net/problem/8674

문제 설명:

두 정수 ab가 주어집니다. 직사각형 격자 a×b에서 홀수 크기의 격자를 만들 수 있는 경우, 그 크기는 min(a, b)입니다. 하지만 a 또는 b 중 하나가 짝수라면, 홀수 크기의 격자는 만들 수 없습니다. 이 경우 결과는 0입니다.


문제 해결 코드


// 백준 8674 - Tabliczka
#include <iostream>
#include <algorithm>
using namespace std;

int main() {
    long long int a, b;
    cin >> a >> b; // 두 정수 입력

    // 하나라도 짝수라면 결과는 0
    if (a % 2 == 0 || b % 2 == 0) {
        cout << 0 << '\n';
    } else {
        // 둘 다 홀수라면 결과는 min(a, b)
        cout << min(a, b) << '\n';
    }

    return 0;
}

코드 설명

코드의 주요 로직과 사용된 알고리즘 설명.

  • 핵심 알고리즘:
    • 두 수 중 하나라도 짝수일 경우, 홀수 크기의 격자를 만들 수 없으므로 결과는 0입니다.
    • 두 수가 모두 홀수일 경우, 가능한 최대 크기의 홀수 격자는 min(a, b)입니다.
  • 구현 세부사항:
    • 짝수 여부를 확인하기 위해 a % 2 == 0b % 2 == 0 조건을 사용합니다.
    • 두 수가 모두 홀수일 때, min(a, b)를 사용하여 최소값을 구합니다.
  • 시간 복잡도 분석:
    • 조건 확인과 최소값 계산은 O(1)입니다.
    • 총 시간 복잡도: O(1).

결과

제출 시, 모든 테스트 케이스에 대해 올바른 결과를 출력합니다.

다른 접근 방식이나 개선 사항이 있다면 댓글로 공유 부탁드립니다!

728x90
반응형
LIST