https://www.hackerrank.com/challenges/grading/problem
Grading Students | HackerRank
Round student grades according to Sam's rules.
www.hackerrank.com
<문제>


문제: 학생들의 점수를 grading하는 문제이다. 만약 결과가 40점 미만이면 그 점수 그대로 grading하지만, 40점 이상일 때, 해당 점수보다 크면서 가장 가까운 5의 배수의 값이 점수와 3점 미만 차이나면 5의 배수 값으로 grading하고, 3점 이상 차이나면 원래의 점수 그대로 grading한다.
input: 먼저 입력받을 총 학생의 수 n을 입력한 뒤, 차례대로 학생의 점수를 입력해 grades[i]에 저장한다.
output: 학생의 grades를 높은 순서대로 출력한다.
<코드> gradingStudents()함수 구현
int* gradingStudents(int grades_count, int* grades, int* result_count) {
*result_count = grades_count;
for(int i=0; i<grades_count; i++){
if(grades[i]%5 > 2 && grades[i] >= 38){
grades[i] += (5-grades[i]%5);
}
}
return grades;
}
<코드 풀이>
grades_count에 전달받은 수만큼 for문을 반복하고, if문을 통해 점수를 바꾸었다.
점수를 5로 나누었을 때 나머지가 2보다 크다면, 점수보다 크면서 가장 가까운 5의 배수와의 차이가 3 미만이고, 또한 점수가 38점 이상이라면 가장 가까운 5의 배수로 점수를 바꾸어서 문제를 풀 수 있었다.
<결과>

'c언어 스터디 > HackerRank' 카테고리의 다른 글
| [HackerRank] Breaking the Records (0) | 2021.05.28 |
|---|---|
| [HackerRank] Tree- Height of a Binary Tree (0) | 2021.05.28 |
| [HackerRank] Sorting- Counting Sort 2 (0) | 2021.05.22 |
| [HackerRank] Sorting- Counting Sort 1 (0) | 2021.05.13 |
| [HackerRank] Staircase (0) | 2021.05.13 |