관리 메뉴

有希

HackerRank/Grading Students 본문

프로그래밍/알고리즘+코딩테스트

HackerRank/Grading Students

有希. 2022. 5. 1. 18:36

문제를 잘 읽어보면 그대로 숫자를 두는 경우는 2가지가 있다.

1. 2를 더해도 40이상이 되지 않을때 -> 38미만은 모두 그대로 둔다.
2. 2를 더해도 다음 5의 배수 이상 숫자가 되지 않을때 -> 5로 나눴을때 나머지가 3미만이라면 2를 더해도 다음 5의 배수가 되지 않는다.

숫자를 반올림처리(인접한 자기보다 큰 5의 배수로 올리는 처리)를 하는 경우는 다음과 같다.

1. 2를 더했을 때 자기보다 큰 최소의 5의 배수숫자 이상이 될 때. -> 5로 나머지 구했을때 3미만이면 된다. 반올림한 숫자는 자기자신 + 다음 5의 배수까지 부족한 만큼이다.
부족한 만큼은 5 - (나를 5로 나눈 나머지) 이다.

vector<int> gradingStudents(vector<int> grades) {
    
    for(int i=0; i<grades.size(); ++i)
    {
        grades[i] = (grades[i] < 38) || grades[i]%5 < 3 ? grades[i] : grades[i] + 5 - (grades[i]%5);
    }
    
    return grades;
}

'프로그래밍 > 알고리즘+코딩테스트' 카테고리의 다른 글

HackerRank/Between Two Sets  (0) 2022.05.03
HackerRank/Number Line Jumps  (0) 2022.05.02
HackerRank/Time Conversion  (0) 2022.05.01
LeetCode/ Jump Game  (0) 2022.04.30
LeetCode/Find the Town Judge  (0) 2022.04.30