반응형
use std::env;
use std::fs::File;
use std::io::{self, BufRead, Write};
/*
* Complete the 'gradingStudents' function below.
*
* The function is expected to return an INTEGER_ARRAY.
* The function accepts INTEGER_ARRAY grades as parameter.
*/
fn gradingStudents(grades: &[i32]) -> Vec<i32> {
let mut results = Vec::new();
for i in 0..grades.len() {
let grade = grades[i];
if grade % 5 >= 3 && grade > 37 {
let result = 5 * ((grade / 5) + 1);
results.push(result);
continue;
}
else {
results.push(grade);
}
}
return results;
}
fn main() {
let stdin = io::stdin();
let mut stdin_iterator = stdin.lock().lines();
let mut fptr = File::create(env::var("OUTPUT_PATH").unwrap()).unwrap();
let grades_count = stdin_iterator.next().unwrap().unwrap().trim().parse::<i32>().unwrap();
let mut grades: Vec<i32> = Vec::with_capacity(grades_count as usize);
for _ in 0..grades_count {
let grades_item = stdin_iterator.next().unwrap().unwrap().trim().parse::<i32>().unwrap();
grades.push(grades_item);
}
let result = gradingStudents(&grades);
for i in 0..result.len() {
write!(&mut fptr, "{}", result[i]).ok();
if i != result.len() - 1 {
writeln!(&mut fptr).ok();
}
}
writeln!(&mut fptr).ok();
}
반응형
'HackerRank' 카테고리의 다른 글
[HackerRank] Subarray Division in Rust (0) | 2023.05.07 |
---|---|
[HackerRank] Breaking the Records in Rust (0) | 2023.05.06 |
[HackerRank] Number Line Jumps in Rust (0) | 2023.05.01 |
[HackerRank] Apple and Orange in Rust (0) | 2023.05.01 |