※ 글쓴이는 취미로 코딩을 익혀보는 사람이라 정확하지 않은 내용을 담고 있을 수 있다 ※
이번에 볼 문제는 HackerRank 문제인 Diagonal Difference이다.
문제는 아래 링크를 확인하자.
https://www.hackerrank.com/challenges/plus-minus/problem
Plus Minus | HackerRank
Calculate the fraction of positive, negative and zero values in an array.
www.hackerrank.com
주어지는 벡터의 성분들을 살펴 양의 정수, 음의 정수 및 0의 개수를 각각 세자.
위에서 구한 개수와 전체 정수의 개수를 이용해 각 종류의 정수의 비율을 소수점 아래 6자리까지 출력하는 것으로 문제를 해결할 수 있다.
비율을 계산할 때, 정수끼리의 나눗셈을 그냥 한다면 정수 나눗셈의 몫을 계산하게 되므로 실수의 나눗셈을 구현해야 하는 점에 유의하자.
아래의 코드에서 "cout << fixed;"는 실수를 출력할 때 소수점 아래의 자릿수를 고정하기 위해, "cout.precision(6);"은 그 표시되는 자릿수를 6자리로 설정하기 위해 사용되었다.
아래는 제출한 소스코드이다.
#include <iostream>
#include <vector>
using namespace std;
void plusMinus(vector<int> arr) {
cout << fixed;
cout.precision(6);
int total = arr.size();
int pos = 0, neg = 0, zero = 0;
for (auto& x : arr) {
if (x > 0) pos++;
else if (x < 0) neg++;
else zero++;
}
cout << (double) pos / total << '\n' << (double) neg / total << '\n' << (double) zero / total;
}
728x90
'HackerRank > HackerRank Algorithms' 카테고리의 다른 글
[HackerRank // C++] Mini-Max Sum (0) | 2022.06.18 |
---|---|
[HackerRank // C++] Staircase (0) | 2022.06.17 |
[HackerRank // C++] Diagonal Difference (0) | 2022.06.15 |
[HackerRank // C++] A Very Big Sum (0) | 2022.06.14 |
[HackerRank // C++] Simple Array Sum (0) | 2022.06.13 |