본문 바로가기

BAEKJOON/수학

백준 27245번 [Комната](C++) -yes6686- 티스토리

728x90
반응형
SMALL

 

백준 문제 풀이: 27245 [Комната]


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

문제 설명:

어느 건축물의 너비(w), 길이(l), 높이(h)가 주어질 때, 이 건축물이 미래 감성의 "드림펑크 스타일"인지 판별해야 합니다. 조건은 아래와 같습니다.

  • 작은 변(min(w, l))이 높이의 두 배 이상이어야 한다.
  • 큰 변(max(w, l))이 작은 변의 두 배 이하이어야 한다.

두 조건을 모두 만족하면 good, 하나라도 만족하지 않으면 bad를 출력합니다.


문제 해결 코드


#include <bits/stdc++.h>

using namespace std;

int main() {
  ios::sync_with_stdio(false);
  cin.tie(nullptr);

  int w, l, h;
  cin >> w >> l >> h;

  int minDim = min(w, l); // 너비와 길이 중 작은 값
  int maxDim = max(w, l); // 너비와 길이 중 큰 값

  // 조건 판별
  if ((minDim >= 2 * h) && (maxDim <= 2 * minDim))
    cout << "good" << "\n";
  else
    cout << "bad" << "\n";
}
  

코드 설명

  • 핵심 조건 판단: 드림펑크 스타일은 건축물의 균형 잡힌 크기를 요구합니다.
  • 조건 1: min(w, l) ≥ 2 × h → 높이 대비 충분한 너비/길이 확보.
  • 조건 2: max(w, l) ≤ 2 × min(w, l) → 좌우 균형 유지.
  • 두 조건이 모두 만족될 때만 good을 출력합니다.

시간 복잡도 분석:

  • 입력과 조건 비교 모두 O(1)입니다. 매우 빠르게 처리됩니다.

결과

예시 입력:

입력:
20 40 10

출력:
good
  

min(20, 40) = 20 ≥ 20 (조건 1 만족), max(20, 40) = 40 ≤ 40 (조건 2 만족)

→ 결과는 good 출력.

다른 아이디어나 조건 확장도 댓글로 환영합니다 :)

728x90
반응형
LIST