[백준] Baekjoon Online Judge
문제
직사각형의 정보를 저장할 클래스 Rectangle을 구현하시오.
- C++14, C++17
- 클래스 이름: Rectangle
- 생성자
- Rectangle(width, height): 직사각형의 가로 길이를 width, 세로 길이를 height 설정한다. width는 1,000보다 작거나 같은 자연수, height는 2,000보다 작거나 같은 자연수이다.
- 멤버 변수
- int width: 직사각형의 가로 길이
- int height: 직사각형의 세로 길이
- 멤버 함수
- int get_width() const: 직사각형의 가로 길이를 리턴한다.
- int get_height() const: 직사각형의 세로 길이를 리턴한다.
- void set_width(int width): 직사각형의 가로 길이를 width로 변경한다. 만약, width가 0보다 작거나 같거나, 1,000보다 크면 변경하지 않는다.
- void set_height(int height): 직사각형의 세로 길이를 height로 변경한다. 만약, height가 0보다 작거나 같거나, 2,000보다 크면 변경하지 않는다.
- int area() const: 직사각형의 넓이를 리턴한다.
- int perimeter() const: 직사각형의 둘레 길이를 리턴한다.
- bool is_square() const: 정사각형이면 true, 아니면 false를 리턴한다.
풀이
class Rectangle {
private:
int width = 0; // 직사각형의 가로 길이
int height = 0; // 직사각형의 세로 길이
public:
Rectangle(int width, int height) {
this->width = width;
this->height = height;
}
// 직사각형의 가로 길이를 리턴
int get_width() const { return width; }
// 직사각형의 세로 길이를 리턴
int get_height() const { return height; }
// 직사각형의 가로 길이를 width로 변경
void set_width(int width) {
if (width > 0 && width <= 1000)
this->width = width;
}
// 직사각형의 세로 길이를 height로 변경
void set_height(int height) {
if (height > 0 && height <= 2000)
this->height = height;
}
// 직사각형의 넓이를 리턴
int area() const { return width * height; }
// 직사각형의 둘레 길이를 리턴
int perimeter() const { return 2 * width + 2 * height; }
// 정사각형이면 true, 아니면 false를 리턴
bool is_square() const { return width == height; }
};
'백준 > C++' 카테고리의 다른 글
| [Baekjoon/C++] 30822번 - UOSPC 세기 (0) | 2025.09.22 |
|---|---|
| [Baekjoon/C++] 25631번 - 마트료시카 합치기 (0) | 2025.09.15 |
| [Baekjoon/C++] 13301번 - 타일 장식물 (0) | 2025.09.09 |
| [Baekjoon/C++] 25644번 - 최대 상승 (0) | 2025.09.06 |
| [Baekjoon/C++] 2896번 - 무알콜 칵테일 (0) | 2025.08.29 |
