본문 바로가기
PS/BOJ

[C++] 백준 15687 - 직사각형 (cpp)

by Nahwasa 2022. 11. 26.

 문제 : boj15687


 

필요 알고리즘 개념

  • 기하학, 구현
    • 기하학이라곤 해도 뭐 그냥 직사각형의 넓이나 둘레를 구하는 법을 아냐 정도이다. 그냥 제시된대로 구현하는 문제이다.

※ 제 코드에서 왜 main 함수에 로직을 직접 작성하지 않았는지, 왜 Scanner를 쓰지 않고 BufferedReader를 사용했는지 등에 대해서는 '자바로 백준 풀 때의 팁 및 주의점' 글을 참고해주세요. 백준을 자바로 풀어보려고 시작하시는 분이나, 백준에서 자바로 풀 때의 팁을 원하시는 분들도 보시는걸 추천드립니다.

 


 

풀이

  백준에서 처음 보는 제출 방식이었다. 완성된 코드가 아니라 클래스만 짜서 올리면 된다. 다만 C++로만 제출이 가능하다. 넓이나 둘레 등은 따로 풀이할건 없을 것 같다. C++을 어느정도 안다면 풀 수 있다.

 

 


 

코드 : github

class Rectangle {
    private:
        int width, height;
    public:
        Rectangle(int width, int height) {
            this->set_width(width);
            this->set_height(height);
        }
        int get_width() const {
            return this->width;
        }
        int get_height() const {
            return this->height;
        }
        void set_width(int width) {
            if (width<=0 || width>1000)
                return;
            this->width = width;
        }
        void set_height(int height) {
            if (height<=0 || height>2000)
                return;
            this->height = height;
        }
        int area() const {
            return this->width * this->height;
        }
        int perimeter() const {
            return 2*this->width + 2*this->height;
        }
        bool is_square() const {
            return this->width == this->height;
        }
};

댓글