반응형
https://www.acmicpc.net/problem/2997
등차수열의 특성을 이용하는 문제였습니다.
📕 풀이방법
📔 입력 및 초기화
1. 3수를 입력받을 일차원 배열 a, 첫 번쨰 원소와 두 번쨰 원소의 차이 d, 두 번째와 세 번째 원소의 차이 d2를 선언 후 세 수를 입력해줍니다. 2. a배열의 원소를 오름차순으로 정렬해줍니다.
3. d = a[1] - a[0], d2 = a[2] - a[1]로 저장해줍니다.
📔 풀이과정
세 경우로 답이 나눠집니다.
1. d > d2인 경우
2 6 8같은 경우입니다. 이 경우 중간 원소가 비어 있으므로 등차는 d2이며 a[0] + d2가 빈 원소의 값입니다. 이를 출력해줍니다.
2. d == d2인 경우
2 4 6같은 경우입니다. 이 경우에는 d, d2모두 등차이므로 아무거나 마지막 원소 a[2]에 더해준 값을 출력합니다.
3. 그 외
2 4 8같은 경우입니다. 이 경우 a[1]과 a[2]사이의 차이가 더 크므로 d가 등차이며 a[1] + d값을 출력해줍니다.
📔 정답출력
경우에 맞게 답을 출력해줍니다.
📕 Code
#include <bits/stdc++.h>
using namespace std;
int a[3], d, d2;
int main(){
for(int i = 0; i < 3; i++) cin >> a[i];
sort(a, a + 3);
int d = a[1] - a[0];
int d2 = a[2] - a[1];
if(d > d2) cout << a[0] + d2;
else if(d == d2) cout << a[2] + d;
else cout << a[1] + d;
}
📕 Test Case
input
2 6 8
답 4
'Algorithm > Implementation' 카테고리의 다른 글
(C++) - 백준(BOJ) 4562 : No Brainer (0) | 2021.12.02 |
---|---|
(C++) - 백준(BOJ) 4084 : Viva la Diferencia (0) | 2021.12.01 |
(C++) - 백준(BOJ) 2975 : Transactions (0) | 2021.11.27 |
(C++) - 백준(BOJ) 2765 : 자전거 속도 (0) | 2021.11.26 |
(C++) - 백준(BOJ) 2547 : 사탕 선생 고창영 (0) | 2021.11.25 |