본문 바로가기

프로그래밍 언어

(60)
[Hackerrank] 30. Cpp exception handling 30. Cpp exception handling [ 난이도: Medium | 분야: Debugging ] 1. 과제 이번 챌린지에서는, 제공된 모든 테스트 파일들을 성공적으로 실행해야 한다. std::invalid_argument 예외를 적절히 다루도록 코드를 수정해야 한다. 더 구체적으로, 주어진 process_input 함수를 수정해야 한다. 이 함수는 정수 n을 인자로 받고 아래의 일들을 수행한다: 1. 이 함수는 largest_proper_divisor(n) 함수를 호출한다. 2. 만약 예외가 발생하지 않고 값을 반환한다면, 이 값은 result=d로 단일 줄로 출력된다. 3. 다르게, 만약 std::invalid_argument 예외를 발생시킨다면 예외를 설명하는 문구를 단일 줄에 출력한다. 4..
[Hackerrank] 29. Hotel Prices 29. Hotel Prices [ 난이도: Medium | 분야: Debugging ] 1. 과제 이번 챌린지에서는 제공된 모든 테스트 파일들을 성공적으로 실행하기 위한 코드를 디버깅하는 것이다. 기본적인 호텔방과 호텔 아파트를 나타내는 HotelRoom 클래스와 HotelApartment가 있다. 이 클래스들은 두 파라미터를 가진다: bedrooms 그리고 bathrooms 각각 방의 침실 수와 화장실 수를 나타낸다. 기본적인 호텔 방과 호텔 아파트 가격은 다음과 같다: - 호텔 방: 50 침실 + 100 화장실 - 호텔 아파트: 같은 침실, 화장실의 수를 갖는다고 가정한다면 100 정도 비싸다 예를 들어, 만약 기본 방의 가격이 200이라면, 같은 수의 침실과 화장실이 있는 아파트는 가격이 300이다..
[Hackerrank] 28. Inheritance Introduction 28. Inheritance Introduction [ 난이도: Easy | 분야: Inheritance ] 1. 내용 정리 객체지향프로그래밍에서 중요한 것 중 하나가 상속이다. 상속은 다른 클래스의 다른 면으로써 클래스를 정의하도록 허용한다. 이 방법은 코드를 재활용할 수 있도록 도와준다. 아래의 코드를 확인하라: class Triangle { public: void triangle() { cout
[Hackerrank] 27. Deque-STL 27. Deque-STL [ 난이도: Medium | 분야: STL ] 1. 내용 정리 Double ended queue 나 deque(C++ STL에서 나온)는 양 끝단에서 확장하거나 축소할 수 있는 동작 크기를 갖는 시퀀스 컨테이너다. 자주 사용하는 deque의 멤버 함수는 다음과 같다: Deque 템플릿 std::deque 선언 deque mydeque; int 형식의 double ended queue의 deque를 생성한다. 크기 int length = mydeque.size(); Deque의 크기를 반환한다. Push mydeque.push_back(1); // Pushes element at the end mydeque.push_front(2); // Pushes element at the b..
[Hackerrank] 26. Print Pretty 26. Print Pretty [ 난이도: Easy | 분야: STL ] 1. 과제 많은 줄 수를 가진 텍스트 파일 안 각각 3 개의 공백으로 구분된 double을 양식에 맞게 출력하라. 아래 section처럼 각 숫자들을 출력하라. 입력 형식 첫 번째 줄은 정수 T를 가지고 있고, 정수 T는 테스트 케이스의 수를 나타낸다. 각 T개의 하위 시퀀스 줄들은 3개의 공백으로 구분된 소수들로 이루어진 테스트 케이스를 가지고 있다. : A, B, C 제약 사항 T는 1보다 크거나 같고 1000보다 작거나 같다. 각 수들은 double 형식에 맞게 들어가 있다. 출력 형식 각 테스트 케이스 별로, 형식에 맞게 A, B 그리고 C를 3 줄로 출력하라. 각 A, B 그리고 C는 아래의 양식을 따른다: 1. A: 소수..
[Hackerrank] 25. Maps-STL 25. Maps-STL [ 난이도: Easy | 분야: STL ] 1. 내용 정리 Map은 C++의 STL의 일부이다. Maps는 특정한 순서를 따르는 key값과 연결된 값들을 결합한 형태의 요소들을 저장한다. 자주 사용하는 Map의 멤버 함수는 다음과 같다: Map 템플릿 std::map 선언 map> q; for(int i = 0; i > type; cin >> name; map::iterator itr=m.find(name); if(type == 1) { cin >> marks; if(itr != m.end()) { m[name] += marks; } else { m.insert({name, marks}); ..
[Hackerrank] 24. Sets-STL 24. Sets-STL [ 난이도: Easy | 분야: STL ] 1. 내용 정리 Sets는 C++ STL의 일부이다. Sets는 특별한 순서를 따르는 독특한 요소들을 저장하는 역할을 한다. 아래는 sets에서 주로 사용하는 함수들이다: 정의 set s; // Creates a set of integers 크기 int length = s.size(); // Gives the size of the set. 삽입 s.insert(x); // Inserts an integer x into the set s. 요소 삭제 s.erase(val); // Erases an integer val from the set s. 요소 찾기 set::iterator itr=s.find(val); // Give the iter..
[Hackerrank] 23. Lower-Bound STL 23. Lower-Bound STL [ 난이도: Easy | 분야: STL ] 1. 과제 과제 설명 정렬된 순서대로 N개의 정수가 있다. 또한, Q 쿼리가 있다. 각 쿼리에는, 정수가 있고 그 정수가 배열 안에 있는지 알려주면 된다. 만약 있다고 하면, 그 정수가 있는 위치를 반환하고 만약 없다고 하면, 주어진 정수보다 크지만, 큰 수들 중에서 제일 작은 정수의 위치를 반환하라. Lower bound는 정렬된 벡터를 사용하는 함수다. 입력 형식 첫 번째 줄에는 정수의 개수인 N을 포함하고 있다. 다음 줄에는 정렬된 순으로 N 개의 정수가 있다. 다음 줄에는 쿼리의 개수인 Q를 포함하고 있다. 그다음 Q 개의 줄이 단일 정수 Y를 포함하고 있다. 요약: 만약 같은 수가 여러 번 나온다면, 첫 번째 위치를 ..
[Hackerrank] 22. Vector-Erase 22. Vector-Erase [ 난이도: Easy | 분야: STL ] 1. 내용 정리 N개의 정수로 이루어진 벡터가 있다고 가정하자. 그 다음, 2개의 쿼리가 주어진다. 첫 번째 쿼리에는, 벡터 내에서의 위치를 나타내는 1 개의 정수가 주어진다. 벡터의 이 위치에 있는 정수를 지워야 한다. 다음 쿼리에는 2 개의 정수가 주어지는데 벡터의 범위가 주어진다. 범위 안의 요소들은 제거해야 한다. 두 번째 쿼리는 첫 번째 쿼리가 실행된 이후에 진행된다. 아래는 유용한 벡터 함수이다. - erase(int position); 해당하는 위치의 요소를 제거한다. v.erase(v.begin()+4); // Erase the fifth element - erase(int start, int end); 지정된 범위의..
[Hackerrank] 21. Vector-Sort 21. Vector-Sort [ 난이도: Easy | 분야: STL ] 1. 내용 정리 N개의 정수가 주어진다고 가정하자. N개의 정수들을 정렬하고 정렬한 순서대로 출력해라. N개의 정수들을 벡터에 저장해라. 벡터는 가변적인 크기를 가지는 배열이다. 정의 vector v; 비어있는 정수를 담을 수 있는 벡터를 생성한다. 크기 int size = v.size(); 벡터에 정수 넣기 v.push_back(x); x는 정수다. 이 이후에 벡터의 크기가 1 증가한다. 벡터의 마지막 값을 빼니기 v.pop_back(); 이 이후에 벡터의 크기가 1 줄어든다. 벡터 정렬 sort(v.begin(), v.end()); 벡터의 모든 값을 정렬한다. 2. 과제 입력 형식 첫 번째 줄은 정수의 개수를 표현하는 N을 포함하..