본문 바로가기

상속

(4)
[Hackerrank] 36. Magic Spells 36. Magic Spells [ 난이도: Hard | 분야: Inheritance ] 1. 과제 과제 설명 비디오 게임을 하는 동안, 매우 강력한 암흑의 마법사와 싸워야 한다. 그가 거리를 두며 마법을 영창하는동안, 오직 수 초만이 반응하도록 시간이 주어지고 역영창을 해야 한다. 역영창이 효과가 있기 위해서는 상대방이 어떤 영창을 하는지 알아야 한다. 마법사는 그의 마법을 영창하기 위해 스크롤을 사용하고 가끔씩 그의 스테미나에 저장되어 있는 일반 영창을 사용한다. 이 경우, 영창에서 스크롤의 이름을 추출해야 한다. 그 다음 이 새 영창이 영창 저널의 공식과 얼마나 비슷한지 알아야 한다. 에디터의 잠겨있는 코드의 내용을 분석하고 counterspell 함수를 완성하라. 이 챌린지를 해결하기 위해 Dyna..
[Hackerrank] 35. Accessing Inherited Functions 35. Accessing Inherited Functions [ 난이도: Medium | 분야: Inheritance] 1. 과제 문제에서 클래스 A, B 그리고 C가 주어진다. 모든 세 클래스는 그들만의 함수를 가지고 있다. 클래스 A에는 받아온 파라미터에 2를 곱한다. class A { public: A(){ callA = 0; } private: int callA; void inc(){ callA++; } protected: void func(int & a) { a = a * 2; inc(); } public: int getA(){ return callA; } }; 클래스 B에는 받아온 파라미터에 3을 곱한다. class B { public: B(){ callB = 0; } private: int ..
[Hackerrank] 32. Multi Level Inheritance 32. Multi Level Inheritance [ 난이도: Easy | 분야: Inheritance ] 이번 챌린지에서는 Inheritance-Introduction의 연장선에 있는 챌린지다. 이 문제를 풀기 전에 반드시 이전 챌린지를 풀고 오는 것을 추천한다. 이전 문제에서, 상속에 대해 배웠고 base 클래스의 멤버 함수들을 derived class에서 사용하는지에 대해 배웠다. 이번 챌린지에서는, 다중 상속에 대해 배울 것이다. 클래스 A라는 base 클래스가 있고 클래스 A를 derive한 클래스 B와 클래스 B를 derive한 클래스 C가 있다고 가정하자. 우리는 클래스 C의 객체를 만든다면, 클래스 A와 클래스 B의 멤버를 사용할 수 있다. 그렇기에 이 메커니즘을 다중 상속이라고 한다.(B..
[Hackerrank] 29. Hotel Prices 29. Hotel Prices [ 난이도: Medium | 분야: Debugging ] 1. 과제 이번 챌린지에서는 제공된 모든 테스트 파일들을 성공적으로 실행하기 위한 코드를 디버깅하는 것이다. 기본적인 호텔방과 호텔 아파트를 나타내는 HotelRoom 클래스와 HotelApartment가 있다. 이 클래스들은 두 파라미터를 가진다: bedrooms 그리고 bathrooms 각각 방의 침실 수와 화장실 수를 나타낸다. 기본적인 호텔 방과 호텔 아파트 가격은 다음과 같다: - 호텔 방: 50 침실 + 100 화장실 - 호텔 아파트: 같은 침실, 화장실의 수를 갖는다고 가정한다면 100 정도 비싸다 예를 들어, 만약 기본 방의 가격이 200이라면, 같은 수의 침실과 화장실이 있는 아파트는 가격이 300이다..