본문 바로가기

문제풀이/C++

[C++] 선생님 퀴즈

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