Turbo-C
C++Builder  |  Delphi  |  FireMonkey  |  C/C++  |  Free Pascal  |  Firebird
볼랜드포럼 BorlandForum
 경고! 게시물 작성자의 사전 허락없는 메일주소 추출행위 절대 금지
터보-C 포럼
Q & A
FAQ
팁&트릭
강좌/문서
자료실
Lua 게시판
볼랜드포럼 홈
헤드라인 뉴스
IT 뉴스
공지사항
자유게시판
해피 브레이크
공동 프로젝트
구인/구직
회원 장터
건의사항
운영진 게시판
회원 메뉴
북마크
볼랜드포럼 광고 모집

C/C++ Q/A
[2710] Re: 배열을 쓰지 않는 더 빠른 방법
김백일.cedar [cedar] 1194 읽음    2003-05-27 16:28
곰.. 님이 쓰신 글 :
: 질문:
:
: 통계학에 의하면 수의 집합에서 모드(mode)란 가장 빈도가 높은 수를 말한는데여..
:
: 예를들어,1,2,3,4,6,7,4,5,4,3 의 리스트에서 4가 3번 있으므로 모드는 4가 되는거자나여..
:
: 그럼 20개의 수를 입력받아 모드를 구하여 출력하는 프로그램을 알려주세여...
:
: 또한, 가장 빈도가 낮은 수를 출력하는 방법두여...
:
: 꼭좀 알려주세여...
:
: 배열과 문자열을 이용해서여...감사합니다.(--)(__)(--)(__).

배열과 문자열을 쓰지 않고, STL의 연관 컨테이너인 map과 multimap을 사용한 코드입니다.

//---------------------------------------------------------------------------
#include <iostream>
#pragma hdrstop
#include <map>

//---------------------------------------------------------------------------
using namespace std;

int main()
{
    const int num_input = 11;

    map<int, int> freq;
    int input;
    for (int i = 0; i < num_input; ++i) {
        cin >> input;
        freq[input]++;
    }

    multimap<int, int> inverse_freq;
    for (map<int, int>::iterator i = freq.begin(); i!= freq.end(); ++i)
        inverse_freq.insert(make_pair(i->second, i->first));

    cout << "Most freqent values(mode, 최빈값[最頻數]): ";
    int max_freq = inverse_freq.rbegin()->first;
    for (multimap<int, int>::reverse_iterator i = inverse_freq.rbegin();
            i->first == max_freq; ++i)
        cout << i->second << " ";
    cout << endl;

    cout << "Most infreqent values: ";
    int min_freq = inverse_freq.begin()->first;
    for (multimap<int, int>::iterator i = inverse_freq.begin();
            i->first == min_freq; ++i)
        cout << i->second << " ";
    cout << endl;

    return 0;
}
//---------------------------------------------------------------------------

+ -

관련 글 리스트
2707 이거 질문인데요..꼭좀 알려주세여.....중요한 행사에 발표를 해야 하거든여... 곰.. 1058 2003/05/26
2710     Re: 배열을 쓰지 않는 더 빠른 방법 김백일.cedar 1194 2003/05/27
2711         Re:Re: 배열을 쓰지 않는 더 빠른 방법 곰.. 992 2003/05/28
Google
Copyright © 1999-2015, borlandforum.com. All right reserved.