권오흠 교수님 - 객체지향프로그래밍 code20
#include <iostream>
using namespace std;
const int MAX = 100;
int main() {
int n;
int data[MAX];
cin >> n; // 입력받을 수의 개수
for (int i = 0; i < n; i++)
cin >> data[i]; // data 배열에 수들 입력
int s;
int count = 0;
cin >> s; // 두 수의 합이 될 수
for (int i = 0; i < n-1; i++) {
for (int j = i+1; j < n; j++) {
if (data[i] + data[j] == s)
count++;
}
}
cout << count << endl;
return 0;
}
배열 data 안의 수들을 2개씩 더했을 때, s와 같은 수의 쌍의 개수를 출력하자.
5
2 4 2 4 5 1
6 // (2, 4), (2, 4), (4, 2), (2, 4), (5, 1)
위와 같이 입력했을 때, 수들의 공백을 기준으로 배열에 수들을 저장하게 된다.
즉, 2 | 4 | 2 | 4 | 5 | 1 들을 각각 배열에 넣게 된다.
5
2
4
2
4
5
1
6
위와 같이 입력했을 때도 각 줄의 수들을 배열에 저장하게 된다.
for (int i = 0; i < n; i++)
cin >> data[i];
파이썬과 같이 각 줄에 수를 하나씩 입력해야 인덱스가 1씩 증가하여 각 배열의 인덱스에 수를 저장할 수 있을거라 생각했다. 하지만, 배열 data의 데이터타입이 int
이므로 공백을 기준으로 한 줄에 수들을 입력해도 알아서 배열들에 각각의 수를 저장해준다. -> 🤔