profile image

L o a d i n g . . .

문제 : 선생님은 출석부를 보고 번호를 부르는데, 학생들의 얼굴과 이름을 빨리 익히기 위해 번호를 무작위(랜덤)으로 부른다.

그리고 얼굴과 이름이 잘 기억되지 않는 학생들은 번호를 여러 번 불러 이름과 얼굴을 빨리 익히려고 하는 것이다.

출석 번호를 n번 무작위로 불렀을 때, 각 번호(1 ~ 23)가 불린 횟수를 각각 출력해보자.

 

 

정답 :

#define _CRT_SECURE_NO_WARNINGS
#include <stdio.h>

int main()
{
	int arr[23] = {};
	int n;
	int m;

	scanf("%d",&n);

	for (int i = 1; i <= n; i++)
	{
		scanf("%d ",&m);
		arr[m - 1]++;
	}

	for (int i = 0; i < 23; i++)
	{
		printf("%d ", arr[i]);
	}

	return 0;

}

먼저 int arr[23] = {}; 를 통해 배열을 모두 0으로 초기화한다.

그리고 n을 입력받아 n번 만큼 for문을 돌리는데, 이때 입력받은 m을 인덱스로 이용해 해당 배열의 값을 1만큼 증가시킨다.

그리고 마지막에 배열의 크기만큼 for문을 돌려 배열의 모든 요소를 출력한다.

복사했습니다!