내 멋대로 코딩 풀이

[C/C++] BOJ 문제번호 4344 평균은 넘겠지

2021. 7. 15. 19:00
반응형

BOJ 문제번호 4344

주어진 문제를 보면 평균을 넘는 인원수를 조사해야하는 것이 핵심이다. 이 문제에서는 2차원 배열을 사용하였는데, 그 이유는 첫번째 줄에 주어지는 조건이 테스트 케이스가 몇 개인지 주어진다. 그러므로 한번만 계산을 하는 것이 아니다. 즉, 테스트 케이스가 C개 주어질 경우 C개의 테스트 케이스의 백분율을 조사하여야 한다. 그렇기 때문에 100xMAX(여기서 MAX는 최대 테스트 케이스의 개수를 의미한다)의 배열을 선언하여 활용하였다.풀이 방향: 1. 테스트 케이스에서 주어진 배열을 입력받으면서 점수의 총합을 계산(반복문을 2번쓰는 것보다 효율적일 것이라 생각)2. 모든 입력을 받은 후 총합을 입력받은 수만큼 나눠 평균을 구한다.3. 구한 평균을 활용하여 다시 저장한 점수들을 체크하면서 평균을 넘었을 경우에 answer라는 변수를 1씩 증가시켰다.4. 모든 점수 조사가 끝난 후 백분율로 나타내기 위해 인원 수 만큼 나누고 100을 곱하여 출력한다.5. 모든 C개의 테스트 케이스를 1번부터 4번까지 반복한다.주의: 평균값은 C개의 테스트 케이스동안 재사용 되므로 1개의 테스트 케이스가 끝날때마다 0.0으로 초기화해주어야 한다.

#include <iostream>

#define MAX 1000

double solution(int arr[], int N, int mean) {
	int i;

	double answer = 0;		// 평균을 넘은 인원 수를 저장하는 변수

	for (i = 0; i < N; i++) 
		if (mean < arr[i])			// i번째 인원의 점수가 mean값을 넘을 경우 answer을 1추가
			answer++;
	answer = answer / N * 100;		// 모든 배열 탐색을 마친 후 인원 수 만큼 나누고 100을 곱함 (백분율 계산)

	return answer;
}
int main() {
	int C, i, N, j;			// C: 테스트 케이스 개수, N: 조사할 인원 수
	double mean = 0.0;		// 해당 테스트 케이스의 평균
	int score[100][MAX];	// 1000개의 테스트 케이스의 점수 저장 배열 

	scanf_s("%d", &C);		// 테스트 케이스의 개수 입력

	for (j = 0; j < C; j++) {
		scanf_s("%d", &N, sizeof(int));			// 조사할 인원의 수

		for (i = 0; i < N; i++) {
			scanf_s("%d", &score[j][i]);		// j번째 테스트 케이스에 i번째 인원의 점수 입력
			mean += score[j][i];				// 점수 입력과 동시에 총합 계산
		}
		mean /= N;			// 계산한 총합을 인원수 만큼 나누어 평균 계산

		printf("%5.3lf%% \n", solution(score[j], N, mean));		// 몇퍼센트의 인원이 넘었는지 출력(유효수자 5자리 소수점 3자리 표기)
		mean = 0.0;			// 사용된 mean값을 0.0으로 초기화
	}


}

채점 결과

 

반응형

'내 멋대로 코딩 풀이' 카테고리의 다른 글

[C/C++] BOJ 문제번호 4673 셀프 넘버  (0) 2021.07.25
[C/C++] BOJ 문제번호 1110 더하기 사이클  (0) 2021.07.19
[C/C++] BOJ 문제번호 1546 평균  (0) 2021.07.14
[C/C++] BOJ 문제번호 10871 X보다 작은 수  (0) 2021.07.11
[C/C++] BOJ 문제번호 10817 세 수  (0) 2021.07.05
'내 멋대로 코딩 풀이' 카테고리의 다른 글
  • [C/C++] BOJ 문제번호 4673 셀프 넘버
  • [C/C++] BOJ 문제번호 1110 더하기 사이클
  • [C/C++] BOJ 문제번호 1546 평균
  • [C/C++] BOJ 문제번호 10871 X보다 작은 수
우리집공돌이곰돌을좋아해
우리집공돌이곰돌을좋아해
우리집공돌이곰돌을좋아해
공돌이 개발일지
우리집공돌이곰돌을좋아해
전체
오늘
어제
  • 분류 전체보기 (36)
    • 임베디드 일지 (8)
      • 아두이노 기초 (6)
    • 프로젝트 일지 (20)
      • 임베디드 모니터 (6)
      • 컴퓨터 HUD (3)
      • Whale Car (11)
    • Python 일지 (0)
    • 내 멋대로 코딩 풀이 (7)
    • MacBook 일지 (1)
    • 일상 (0)

블로그 메뉴

  • 홈
  • 태그
  • 방명록

공지사항

인기 글

태그

  • 임베디드제어
  • PyQt5
  • 알고리즘
  • 임베디드분석
  • C
  • Python
  • 아두이노메가
  • 아두이노모니터
  • stm32h745zi
  • 임베디드개발
  • C++
  • 디버깅툴
  • 백준
  • 임베디드모니터
  • 임베디드
  • Pull-up
  • Arduino
  • STM32
  • 아두이노
  • Nucleo

최근 댓글

최근 글

hELLO · Designed By 정상우.
우리집공돌이곰돌을좋아해
[C/C++] BOJ 문제번호 4344 평균은 넘겠지
상단으로

티스토리툴바

개인정보

  • 티스토리 홈
  • 포럼
  • 로그인

단축키

내 블로그

내 블로그 - 관리자 홈 전환
Q
Q
새 글 쓰기
W
W

블로그 게시글

글 수정 (권한 있는 경우)
E
E
댓글 영역으로 이동
C
C

모든 영역

이 페이지의 URL 복사
S
S
맨 위로 이동
T
T
티스토리 홈 이동
H
H
단축키 안내
Shift + /
⇧ + /

* 단축키는 한글/영문 대소문자로 이용 가능하며, 티스토리 기본 도메인에서만 동작합니다.