풀이
#include <iostream>
#include <vector>
#include <cmath>
using namespace std;
int main() {
int n;
cin >> n;
vector<int> integers(n);
for (int i = 0; i < n; ++i)
{
cin >> integers[i];
}
int point;
cin >> point;
int variant = integers[0];
int mindiff = abs(integers[0] - point);
for (int i = 1; i < n; ++i)
{
int diff = abs(integers[i] - point);
if (diff < mindiff)
{
mindiff = diff;
variant = integers[i];
}
}
cout << variant << endl;
return 0;
}
#include <vector>를 사용했습니다. 먼저 vector는 동적 배열입니다. 정적 배열은 크기가 고정되어 있지만 정적배열은 변수를 넣을 수 있습니다. vector<int> integers(n); 식으로 쓰입니다.
그리고 한가지 더 배웠던 것은 바로 abs( ) 입니다. abs()는 절대값을 찾아주는 함수입니다.
풀이 방법은
- 입력될 정수의 개수를 입력받을 것
- 입력된 정수들의 저장할 배열 작성 및 저장
- 찾을 정수 입력 후 가장 가까운 정수 저장하기
- for문을 통해 배열을 순회하면서 가장 가까운 정수 찾기
이런식으로 진행이 되었습니다. for문으로 풀었습니다. 코드를 보면 직관적으로 이해할 수 있도록 되어있습니다.
'IT 프로그래밍 > 객체지향프로그래밍' 카테고리의 다른 글
[C++] 피보나치 수열 초보자용 만들기 (0) | 2024.04.10 |
---|---|
객체지향프로그래밍 그룹 액티비티 5번 문제 해설 (0) | 2024.04.10 |
[C++] 1에서 N 사이의 정수들을 모두 종이에 적었을 때 0의 개수 출력 (0) | 2024.03.10 |
[C++] 양의 정수를 이진수로 변환하는 프로그램 (0) | 2024.03.09 |
명품 C++프로그래밍 11, 12 예제 (0) | 2024.03.06 |