Computer/Algorithm

Daily Algorithm - SNS만들기 (2)

kentakang 2018. 4. 20. 23:33
반응형

문제

SNS 서비스를 만들자.

친구관계가 입력되면 다음의 물음에 대해 답을 출력하자.

물음) 학생들의 평균 나이는 몇 살인가?

입력

첫번째 줄에 SNS를 이용하는 학생수 n(2 <= n <= 150)이 입력된다.

n 줄에 걸쳐서 각 학생들의 정보가 다음과 같이 쉼표(,)로 구분되어 입력된다.

이름,성별,나이,친구1,친구2,친구3,...친구10

*학생들의 이름은 모두 다르다.

*친구의 수는 최소 1명에서 최대 10명이다.

출력

학생들의 평균 나이 (소수점 이하 3째자리에서 반올림하여 2째자리까지 출력)

예제 입력

10
Addison,F,18,Sharon,Kimberly,Joshua
Clara,F,17,Addison,Brittany,Mary,Sharon
Anthony,M,18,Kyle,Mary
Andrew,M,18,Sharon,Clara
Mary,F,17,Clara
Sharon,F,17,Mary,Addison,Kyle
Kimberly,F,17,Addison,Brittany,Anthony,Mary,Andrew
Kyle,M,17,Mary,Brittany,Addison
Brittany,F,17,Kyle,Sharon,Mary,Addison,Anthony
Joshua,M,19,Mary,Clara

예제 출력

17.50

풀이

#include <stdio.h>
#include <stdlib.h>
#include <string.h>

typedef struct Person {
char name[10];
char gender[2];
int age;
}person;

int main()
{
int n, sum = 0;
char str[100];
scanf("%d", &n);
person *list = malloc(sizeof(person) * n);

for (int i = 0; i < n; i++)
{
scanf("%s", str);

char *ptr = strtok(str, ",");

strcpy(list[i].name, ptr);
ptr = strtok(NULL, ",");
strcpy(list[i].gender, ptr);
ptr = strtok(NULL, ",");
list[i].age = atoi(ptr);
sum += list[i].age;
}

free(list);
printf("%.2f", (double) sum / n);
}


어제 풀었던 SNS만들기 (1) 과 비슷한 문제.

이번 문제에서는 String을 int로 변환하는 atoi 함수를 추가로 사용했다.


문제 출처 : http://codeup.kr/JudgeOnline/problem.php?id=2412



반응형