728x90
[목적]
현수네 반은 학생이 N명 있습니다.
수업도중 선생님이 잠깐 자리를 비워야 하는데 그 동안 학생들이 떠들거나 놀지 않도록 각 학생들에게 퀴즈를 냈습니다.
선생님은 각 학생들에게 숫자가 적힌 카드를 줬습니다. 각 학생들은 1부터 자기 카드에 적힌 숫자까지의 합을 구하는 퀴즈입니다.
선생님이 돌아와서 각 학생들의 답이 맞았는지 확인을 하려고 하는데 너무 힘들어서 여러분에 게 자동으로 채점을 하는 프로그램을 부탁했습니다. 여러분이 선생님을 도와주세요.
[입력예제]
3
10 55
20 350
100 5050
[출력예제]
YES
NO
YES
총 3명의 학생에게 퀴즈를 냈다.
첫 번째 학생은 1부터 10까지 더하는데 결과는 55라 하였고, 해당 결과는 정답이어 YES를 출력하였다.
마찬가지로 두 번째 학생과 세 번째 학생도 문제와 결과를 받았고, 결과의 정답 여부에 따라 NO와 YES를 출력하였다.
[코드]
#include <iostream>
using namespace std;
int main(void) {
int num;
cin >> num;
int sol, ans, res;
bool fin[num];
for(int i=0; i<num; i++){
res = 0;
cin >> sol >> ans;
for(int j=1; j<=sol; j++) res += j;
if(ans == res) fin[i]=true;
else fin[i]=false;
}
for(int k=0; k<num; k++){
if(fin[k]) cout << "YES" << endl;
else cout << "NO" << endl;
}
return 0;
}
1. 학생 수를 입력받는다.
2. for문에서 학생에게 낸 문제와 학생이 적어낸 답을 하나씩 받아온다.
3. 1부터 학생에게 낸 문제까지의 숫자를 더해 res변수에 저장한다.
4. 학생이 적은 답과 res변수에 저장된 답을 비교하여 같으면 fin[i]에 true를 넣고 아니면 false를 넣는다.
5. 학생 수 만큼 반복한다.
6. fin 변수에 든 값이 참이면 'YES'를 출력하고 그렇지 않으면 'NO'를 출력한다.
[실행결과]
728x90
반응형
'문제풀이 > C++' 카테고리의 다른 글
[C++] 분노 유발자 (0) | 2021.01.05 |
---|---|
[C++] 층간소음 (0) | 2021.01.05 |
[C++] Anagram (0) | 2021.01.01 |
[C++] 소수의 개수 (0) | 2021.01.01 |
[C++] 뒤집은 소수 (0) | 2020.12.30 |