-
백준 2547번 : 사탕 선생 고창영 (C 언어)c c++ 언어 공부 2023. 11. 8. 10:30
https://www.acmicpc.net/problem/2547
2547번: 사탕 선생 고창영
첫째 줄에 테스트 케이스의 개수 T가 주어진다. 각 테스트 케이스는 빈 줄로 구분되어 있고, 다음과 같이 구성되어 있다. 테스트 케이스의 첫째 줄에 학생의 수 N이 주어진다. 다음 N개의 줄에는
www.acmicpc.net
Code:
1234567891011121314151617181920212223242526#include <stdio.h>int main() {int n;scanf("%d", &n);long long x = 0;int num = 0;while (n--){long long sum = 0;scanf("%d", &num);for (int i = 0; i < num; i++){scanf("%lld", &x);sum = (sum + x) % num;}if (sum % num == 0){printf("YES\n");}else {printf("NO\n");}}return 0;}cs 문제 설명: 주어진 문제는 초등학교 선생님이 학생들 사이에서 가진 사탕의 수를 공평하게 나눠주려는 상황을 다루고 있습니다. 각 테스트 케이스에서, 학생들은 가방에 다양한 개수의 사탕을 들고 있으며, 선생님은 이 사탕을 모든 학생들 사이에서 공평하게 나눠주려고 합니다. 공평하게 나눠줄 수 있는 경우 "YES"를 출력하고, 그렇지 않은 경우 "NO"를 출력해야 합니다.
코드 설명:
- int n;: 테스트 케이스의 개수를 저장하는 정수 변수 n을 선언합니다.
- scanf("%d", &n);: 사용자로부터 테스트 케이스의 개수를 입력받습니다.
- long long x = 0;: 각 사탕의 수를 저장하는 x와 사탕의 총합을 저장하는 변수를 초기화합니다.
- int num = 0;: 각 테스트 케이스에서 학생의 수를 저장하는 변수 num을 선언합니다.
- while (n--): 테스트 케이스의 개수만큼 반복합니다.
- long long sum = 0;: 각 테스트 케이스에서 사탕의 총합을 저장하는 변수 sum을 초기화합니다.
- scanf("%d", &num);: 각 테스트 케이스에서 학생의 수를 입력받습니다.
- for (int i = 0; i < num; i++): 각 학생이 가진 사탕의 수를 입력받기 위한 루프를 시작합니다.
- scanf("%lld", &x);: 각 학생이 가진 사탕의 수를 입력받습니다.
- sum = (sum + x) % num;: 학생들이 가진 사탕의 수를 모두 더하고, 그 합을 학생의 수로 나눈 나머지를 계산하여 sum에 저장합니다. 이것은 학생들이 가진 사탕을 공평하게 나누기 위한 연산입니다.
- if (sum % num == 0): 만약 sum을 학생의 수 num으로 나눈 나머지가 0이라면, 공평하게 사탕을 나눌 수 있는 상황입니다.
- printf("YES\n");: "YES"를 출력하여 이 경우를 나타냅니다.
- 그렇지 않은 경우, printf("NO\n");를 사용하여 공평하게 나눌 수 없는 상황을 나타냅니다.
'c c++ 언어 공부' 카테고리의 다른 글
백준 1812번 : 사탕 (C 언어) (0) 2023.11.10 백준 17356번 : 욱 제 (C 언어) (0) 2023.11.09 백준 1568번 : 새 (C 언어) (0) 2023.11.07 백준 3035번 : 스캐너 (C 언어) (0) 2023.11.06 백준 15873번 : 공백 없는 A+B (C 언어) (0) 2023.11.04