13900번 - 순서쌍의 곱의 합
안녕하세요.
우선 문제에 대해서 이해한 바는 정수 N개가 들어 왔을 때,
모두 다른 정수로 판단하여 순서쌍을 만들고 서로 곱한 값의 합을 구하는 문제입니다.
예를 들어 N = 4로, 2, 2, 3, 4가 있을 때, (2, 2), (2, 3), (2, 4), (2, 3), (2, 4), (3, 4) 총 6개의 케이스가 나옵니다.
이 부분에 대해서 잘못 이해한 것이라면 알려주세요.
제가 이해한 문제를 풀기위해 알고리즘은 다음과 같습니다.
1. 한 정수를 빼고 나머지 숫자들의 합과 곱한다.
2. 모든 정수가 나올 때까지 반복한다.
3. 이 과정에서 나온 곱한 값들의 합을 출력한다.
입력 예제의 답은 다 맞습니다. 반례가 떠오르지가 않습니다.
제가 진행한 알고리즘에 문제가 있을까요?
rslt += total * arr[i]; 부분에서 total 과 arr[i] 가 둘 다 int 형이므로 곱할 때 integer overflow가 일어날 수 있습니다.
rslt += total * arr[i];
댓글을 작성하려면 로그인해야 합니다.
spearkkk 7년 전
안녕하세요.
우선 문제에 대해서 이해한 바는 정수 N개가 들어 왔을 때,
모두 다른 정수로 판단하여 순서쌍을 만들고 서로 곱한 값의 합을 구하는 문제입니다.
예를 들어 N = 4로, 2, 2, 3, 4가 있을 때, (2, 2), (2, 3), (2, 4), (2, 3), (2, 4), (3, 4) 총 6개의 케이스가 나옵니다.
이 부분에 대해서 잘못 이해한 것이라면 알려주세요.
제가 이해한 문제를 풀기위해 알고리즘은 다음과 같습니다.
1. 한 정수를 빼고 나머지 숫자들의 합과 곱한다.
2. 모든 정수가 나올 때까지 반복한다.
3. 이 과정에서 나온 곱한 값들의 합을 출력한다.
입력 예제의 답은 다 맞습니다. 반례가 떠오르지가 않습니다.
제가 진행한 알고리즘에 문제가 있을까요?