※ 글쓴이는 취미로 코딩을 익혀보는 사람이라 정확하지 않은 내용을 담고 있을 수 있다 ※

 

이번에 볼 문제는 HackerRank 문제인 Diagonal Difference이다.
문제는 아래 링크를 확인하자.

https://www.hackerrank.com/challenges/diagonal-difference/problem

 

Diagonal Difference | HackerRank

Calculate the absolute difference of sums across the two diagonals of a square matrix.

www.hackerrank.com

주어지는 N행 N열의 행렬의 두 대각성분의 합의 차를 계산하는 문제이다.

 

반복문을 이용하여 대각선의 성분만을 접근해 문제를 해결하자.

 

문제에서 구하는 두 대각성분의 합의 차는 절댓값이어야 함에 유의하여 구현하자.

 

아래는 제출한 소스코드이다.

int N;
int diagonalDifference(vector<vector<int>> arr) {
	N = arr.size();
	int ret = 0;
	for (int i = 0; i < N; i++) ret += arr[i][i];
	for (int i = 0; i < N; i++) ret -= arr[i][N - i - 1];

	return abs(ret);
}
728x90

※ 글쓴이는 취미로 코딩을 익혀보는 사람이라 정확하지 않은 내용을 담고 있을 수 있다 ※

 

이번에 볼 문제는 HackerRank 문제인 A Very Big Sum이다.
문제는 아래 링크를 확인하자.

https://www.hackerrank.com/challenges/a-very-big-sum/problem

 

A Very Big Sum | HackerRank

Calculate the sum of the values in an array that might exceed the range of int values.

www.hackerrank.com

주어진 벡터의 모든 정수를 더해 리턴하는 함수를 작성하는 문제이다.

 

여기서 주어진 모든 정수의 합은 32비트 정수로 표현할 수 있는 범위를 벗어날 수 있으므로 그보다 더 넓은 범위를 저장할 수 있는 정수 자료형을 사용해야 하는 점에 유의하자.

 

아래는 제출한 소스코드이다.

typedef long long ll;
long aVeryBigSum(vector<long> ar) {
	ll ret = 0;
	for (auto& x : ar) ret += x;

	return ret;
}
728x90

※ 글쓴이는 취미로 코딩을 익혀보는 사람이라 정확하지 않은 내용을 담고 있을 수 있다 ※

 

이번에 볼 문제는 HackerRank 문제인 Simple Array Sum이다.
문제는 아래 링크를 확인하자.

https://www.hackerrank.com/challenges/simple-array-sum/problem

 

Simple Array Sum | HackerRank

Calculate the sum of integers in an array.

www.hackerrank.com

주어지는 벡터의 모든 원소를 더한 값을 출력하는 문제이다.

 

벡터의 모든 원소를 더하는 것은 for문을 이용해 아래와 같이 간단히 해결할 수 있다.

 

아래는 제출한 소스코드이다.

int simpleArraySum(vector<int> ar) {
	int ret = 0;
	for (auto& x : ar) ret += x;
	return ret;
}
728x90

※ 글쓴이는 취미로 코딩을 익혀보는 사람이라 정확하지 않은 내용을 담고 있을 수 있다 ※

 

이번에 볼 문제는 HackerRank 문제인 Solve Me First이다.
문제는 아래 링크를 확인하자.

https://www.hackerrank.com/challenges/solve-me-first/problem

 

Solve Me First | HackerRank

This is an easy challenge to help you start coding in your favorite languages!

www.hackerrank.com

1 이상 1000 이하의 두 정수 a와 b가 주어졌을 때 두 수의 합을 리턴하는 함수를 작성하는 문제이다.

 

주어지는 a와 b의 범위가 충분히 작으므로 오버플로우 걱정 없이 단순히 둘을 더해 리턴하는 함수를 작성하자.

 

아래는 제출한 소스코드이다.

int solveMeFirst(int a, int b) {
    int ret = a + b;
    return ret;
}

 

728x90

+ Recent posts