반응형
https://www.acmicpc.net/problem/2547
%연산을 이용하는 문제였습니다.
(첫 글자 대문자 언어 이름 ) - 문제 명 답
📕 풀이방법
📔 입력 및 초기화
테스트 케이스 수 t를 선언 후 입력받습니다.
📔 풀이과정
t만큼 while loop를 수행합니다. 1. 학생 수 student, 전체 사탕의 수 totalCandy, 사탕의 수 candy를 선언해줍니다. 2. student만큼 loop를 돌며 각 학생이 가지고 있는 사탕의 수를 candy에 입력해줍니다. 3. 범위가 학생 수 10만이고 모두 10^18개의 사탕을 가지고 있는 경우 long long을 초과할 수 있으므로 totalCandy에 입력했던 candy를 누적해서 더한 후 바로 학생수로 나눠준 나머지를 저장해줍니다. 이는 모든 학생들에게 1개씩 미리 나눠주는 셈이 됩니다.
📔 정답출력
loop탈출 후 마지막 totalCandy를 모든 학생들에게 한 개씩 나눠줄 수 있으면 YES를, 아니면 NO를 출력해줍니다.
📕 Code
#include <bits/stdc++.h>
#define ll long long
using namespace std;
int t;
int main(){
cin >> t;
while(t--){
ll student, totalCandy = 0, candy;
cin >> student;
for(int i = 0; i < student; i++) {
cin >> candy;
totalCandy = (totalCandy + candy) % student;
}
if(totalCandy % student) cout << "NO\n";
else cout << "YES\n";
}
}
'Algorithm > Implementation' 카테고리의 다른 글
(C++) - 백준(BOJ) 2975 : Transactions (0) | 2021.11.27 |
---|---|
(C++) - 백준(BOJ) 2765 : 자전거 속도 (0) | 2021.11.26 |
(Python) - 백준(BOJ) 2061 : 좋은 암호 (0) | 2021.11.24 |
(C++) - 백준(BOJ) 2052 : 지수연산 (0) | 2021.11.23 |
(Go) - 백준(BOJ) 2557 : Hello World (0) | 2021.11.19 |