프로그래머스 Lv.1 - 삼총사
출처: https://school.programmers.co.kr/learn/courses/30/lessons/131705
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
// 프로그래머스 Lv.1 - 삼총사
// https://school.programmers.co.kr/learn/courses/30/lessons/131705
//
// [문제] 서로 다른 세 학생의 번호 합이 0이 되는 경우의 수를 반환
// [제약] number 길이 3~13 / 각 원소 -1,000 ~ 1,000 (중복 값 가능)
// [입출력] [-2,3,0,2,-5]→2 / [-3,-2,-1,0,1,2,3]→5 / [-1,1,-1,1]→0
//
// 풀이: 길이가 13 이하로 작아 세 개를 모두 고르는 완전탐색 — O(n³)
#include <string>
#include <vector>
using namespace std;
int solution(vector<int> number) {
int answer = 0;
int n = (int)number.size();
for (int i = 0; i < n - 2; i++) {
for (int j = i + 1; j < n - 1; j++) {
for (int k = j + 1; k < n; k++) {
if (number[i] + number[j] + number[k] == 0) {
answer++;
}
}
}
}
return answer;
}
이 기사는 저작권자의 CC BY 4.0 라이센스를 따릅니다.