게시판 즐겨찾기
편집
드래그 앤 드롭으로
즐겨찾기 아이콘 위치 수정이 가능합니다.
C++) 최빈값 출력해주는 코드를 짜야하는데용.
게시물ID : programmer_8906짧은주소 복사하기
작성자 : 훗날닭집사장
추천 : 0
조회수 : 4986회
댓글수 : 4개
등록시간 : 2015/03/26 00:32:35
옵션
  • 본인삭제금지
주어져 있는 정수에 따라서 최빈값을 구해야 하는데요.
 
가령 1 1 1 -1 -1 3 2 -1 4
 
이런 수가 주어져 있으면 1과 -1이 3개로 가장 많기 때문에 -1, 1을 각 각 출력해줘야 하고
 
최빈값의 최대 횟수인 3회를 출력해줘야 하며 그 최대 횟수인 최빈값들의 개수 (1, -1)가 몇개인지 역시 출력해줘야 합니다. (1, -1이기 때문에 2)
 
이렇게 해야하는데, 알고리즘을 계속 구상해봐도
 
1. 선택정렬로 오름차순 정렬 한다.
 
2. 배열로 받아 반복문 안에서 앞의 수와 뒤의 수를 비교해준다 (arr[0] == arr[1] 이런식으로 계속. 오름차순 정렬되어있으니 가능)
 
3. 일치하면 계속 count (횟수)를 증가시켜주고, 일치하지 않은 순간 result 변수에 해당 값을 입력시킨 뒤
횟수를 count2라는 변수에 저장시키고 count는 초기화시켜준다.
 
4. 개수를 세기 위해 count2에 저장된 최대의 값이 몇개인지 알아야 한다.
 
(위의 조건에 따르면 3개인 경우가 2번 있겠지요..)
 
이정도가 딱 떠오르는 바 입니다.
 
코드를 알고싶다는게 아니라, 어떤식의 구상이 더 필요한지 조언을 부탁드립니다..ㅜㅜ
 
3번까지는 구현했는데 4번을 어떤식으로 해야 할지도 계쏙 고민중이구요...
 
한 5시간정도 고민해보다가 결국 질문 올립니다. ㅠㅠ
 
 
전체 추천리스트 보기
새로운 댓글이 없습니다.
새로운 댓글 확인하기
글쓰기
◀뒤로가기
PC버전
맨위로▲
공지 운영 자료창고 청소년보호