🤯 코딩테스트/C/C++
[it 취업을 위한 알고리즘 문제풀이 (with C/C++) : 코딩테스트 대비] 코드구현력 기르기 - 선생님 퀴즈
kangkibong
2022. 8. 25. 16:42
문제
현수네 반은 학생이 N명 있습니다. 수업도중 선생님이 잠깐 자리를 비워야 하는데 그 동안 학 생들이 떠들거나 놀지 않도록 각 학생들에게 퀴즈를 냈습니다. 선생님은 각 학생들에게 숫자가 적힌 카드를 줬습니다. 각 학생들은 1부터 자기 카드에 적힌 숫자까지의 합을 구하는 퀴즈입니다. 선생님이 돌아와서 각 학생들의 답이 맞았는지 확인을 하려고 하는데 너무 힘들어서 여러분에 게 자동으로 채점을 하는 프로그램을 부탁했습니다. 여러분이 선생님을 도와주세요.
💡 입력설명
첫 줄에 반 학생수인 자연수 N(1<=N<=10)이 주어집니다. 각 학생들은 1부터 N까지 번호가 부여되어 있다고 가정합니다. 두 번째 줄부터 1번 학생부터의 카드에 적힌 수와 학생이 구한 정답이 공백을 사이에 두고 입력된다. 카드에 적힌 수는 1000을 넘지 않는다.
💡 출력설명
첫 줄부터 1번 학생이 정답을 맞추면 “YES", 틀리면 ”NO"를 출력하세요.
💡 입력예제
3 10 55 20 350 100 5050
💡 출력예제
YES NO YES
코드
최종 풀이
#include <stdio.h>
int main() {
int n, i, j, num, res, sum;
scanf("%d", &n);
for(i = 0; i < n; i++) {
sum = 0;
scanf("%d %d", &num, &res);
for(j = 1; j <= num; j++) {
sum += j;
}
if(res == sum) {
printf("YES\n");
} else {
printf("NO\n");
}
}
return 0;
}
설명
사용자로 부터 학생 수를 입력받고 n에 할당한다.
n번 반복하는 for문을 작성하고 각 학생에게 정답을 받아야 하므로 sum은 항상 0으로 초기화되도록 한다.
학생으로부터 카드에 적힌 수 num과 정답 res을 입력받는다.
1~num번 반복하는 for문을 작성하고 1~num까지 더한 값을 sum에 할당한다.
이후 학생으로부터 받은 정답 res와 1~num까지 더한 값 sum을 비교하여 같을 경우 "YES"를 출력하고 같지 않으면 "NO"를 출력해나간다.
해당 내용은 김태원님의 'it 취업을 위한 알고리즘 문제풀이' 강의를 듣고 작성한 글입니다.