-
1204. 최빈수 구하기코딩 테스트/SW Expert Academy 2021. 7. 3. 23:07
SW Expert Academy
SW 프로그래밍 역량 강화에 도움이 되는 다양한 학습 컨텐츠를 확인하세요!
swexpertacademy.com
문제 이해
-> 학생 1000명의 수학 성적을 토대로 통계 자료를 만드는 데 최빈수를 이용하여 학생들의 평균 수준을 짐작하기 위해 만든 프로그램
-> 예시로 10, 8, 7, 2, 2, 4, 8, 8, 8, 9, 5, 5, 3 이 있다면 최빈수는 8이 된다.
문제 주의
-> 최빈수가 여러 개 일 때에는 가장 큰 점수를 출력
-> 학생의 수는 1000명
-> 각 학생의 점수는 0점 이상 100점 이하의 값
문제 풀이
-> 100명분의 점수을 조사하기 위해 Student 객체 101개를 생성 // 배열은 0부터 101까지, 점수는 0부터 100까지
-> 반복문을 통해 1000명분의 점수를 배열에 저장
-> 이 때, 점수를 Student 배열의 위치에 있는 count 멤버변수를 1 증가
-> 예시로 71점이 들어온다면 Student[71]->m_count++;
-> 다음 단계로 Student[0]부터 Student[101] 까지의 m_count 를 조사
-> 이 때, m_count 가 높다면 그만큼 동일한 점수가 많다는 뜻이므로 최빈수일 가능성이 큼
-> 다음 단계로 m_count 가 가장 높은 Student 배열 값을 찾기 위해 조사
-> 예시로, m_count가 17이라면 이 멤버 변수를 가지고 있는 Student[n] 을 찾기 위함
-> Student[0]부터 Student[101] 까지 m_count 가 tempMax 인지 조사
-> 찾았다면 그 수가 최빈수
#include <iostream> using namespace std; class Student { private: int m_count; public: Student(); ~Student(); void InitializeStudent(); void PointUp(); int ShowStudentCount(); }; Student::Student() : m_count(0) { }; Student::~Student() { }; void Student::InitializeStudent() { m_count = 0; } void Student::PointUp() { this->m_count++; }; int Student::ShowStudentCount() { return this->m_count; } int main() { Student std[101]; int testCaseCount, testCase, testPoint; cin >> testCaseCount; for (int i = 0; i < testCaseCount; i++) { cin >> testCase; for (int j = 0; j < 1000; j++) { cin >> testPoint; std[testPoint].PointUp(); } int tempMax = 0; int result = 0; for (int k = 0; k < 101; k++) { if (std[k].ShowStudentCount() < std[k + 1].ShowStudentCount() && tempMax < std[k + 1].ShowStudentCount()) tempMax = std[k + 1].ShowStudentCount(); } for (int p = 0; p < 101; p++) if (std[p].ShowStudentCount() == tempMax) result = p; cout << "#" << testCase << " " << result; cout << endl; for (int q = 0; q < 101; q++) std[q].InitializeStudent(); } return 0; }
'코딩 테스트 > SW Expert Academy' 카테고리의 다른 글
1288. 새로운 불면증 치료법 (0) 2021.08.06 1976. 시각 덧셈 (0) 2021.07.26 1966. 숫자를 정렬하자 (0) 2021.06.30 1926. 간단한 369게임 (0) 2021.06.29 1928. Base64 Decoder (0) 2021.06.28