PS/Baekjoon Online Judge

[백준 2470] 두 용액 [C]

kimyoungrok 2021. 8. 26. 06:07

백준 - 2470


풀이

"백준 2467, 용액"과 동일한 문제이다.

단, 입력되는 특성값이 항상 오름차순이라는 문구가 빠졌다. 정렬 후 탐색을 해주자.


소스코드

#include <stdio.h>
#include <stdlib.h>
#include <math.h>
int compare(const void *a, const void *b){
    return *(int*)a - *(int*)b;
}
int main(){
    int N;
    scanf("%d", &N);
    int arr[N];
    for (int i = 0; i < N; i++)
        scanf("%d", &arr[i]);
    qsort(arr, N, sizeof(int), compare);
	
    int left = 0, right = N-1, sum = 2e9;
    int left_val = arr[left], right_val = arr[right];
    while (left < right){
        int temp = arr[left] + arr[right];
		
        if (abs(temp) < sum){
            sum = abs(temp);
            left_val = arr[left];
            right_val = arr[right];
        }
		
        temp < 0 ? ++left : --right;
    }
    printf("%d %d", left_val, right_val);
}

출처 및 참고자료

 

2470번: 두 용액

첫째 줄에는 전체 용액의 수 N이 입력된다. N은 2 이상 100,000 이하이다. 둘째 줄에는 용액의 특성값을 나타내는 N개의 정수가 빈칸을 사이에 두고 주어진다. 이 수들은 모두 -1,000,000,000 이상 1,000,00

www.acmicpc.net

 

[백준 2467] 용액 [C]

풀이 특성값의 합이 기존에 구한 특성값의 합보다 작다고 항상 0에 가까운건 아니다. ex) -1 + 1 = 0, -10 + 1 = -9 때문에 특성값 합의 절대값을 이용해 구해야한다. 새로운 특성값 합의 절대값이 기존

kyr-db.tistory.com

'PS > Baekjoon Online Judge' 카테고리의 다른 글

[백준 6588] 골드바흐의 추측 [C]  (0) 2021.08.26
[백준 2474] 세 용액 [C]  (0) 2021.08.26
[백준 2467] 용액 [C]  (0) 2021.08.26
[백준 1005] ACM Craft [C]  (0) 2021.08.25
[백준 2239] 스도쿠 [C]  (0) 2021.08.25