기록하지 않았다면 잃어버릴 시간들
Home
  • 분류 전체보기 (184)
    • Lang (6)
      • c++ (2)
      • Java (2)
      • python (2)
    • 프레임워크 (18)
      • Spring (16)
      • JPA (2)
    • 알고리즘 (141)
      • 이론 (4)
      • 백준 (59)
      • Codility (13)
      • 프로그래머스 (65)
    • CS (4)
      • 운영체제 (0)
      • 자료구조 (0)
      • DB (4)
      • 네트워크 (0)
      • 보안 (0)
    • 기타 (7)
    • 프로젝트 (4)
      • 게시판 만들기로 배우는 Spring Data JP.. (4)
Home
  • 분류 전체보기 (184)
    • Lang (6)
      • c++ (2)
      • Java (2)
      • python (2)
    • 프레임워크 (18)
      • Spring (16)
      • JPA (2)
    • 알고리즘 (141)
      • 이론 (4)
      • 백준 (59)
      • Codility (13)
      • 프로그래머스 (65)
    • CS (4)
      • 운영체제 (0)
      • 자료구조 (0)
      • DB (4)
      • 네트워크 (0)
      • 보안 (0)
    • 기타 (7)
    • 프로젝트 (4)
      • 게시판 만들기로 배우는 Spring Data JP.. (4)
블로그 내 검색

기록하지 않았다면 잃어버릴 시간들

새로운 것을 배우는게 즐거운 개발자입니다.

  • 알고리즘/백준

    BOJ 2470 두 용액 / C++

    2022. 5. 23.

    by. 내이름은 킹햄찌

    https://www.acmicpc.net/problem/2470

     

    2470번: 두 용액

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

    www.acmicpc.net

    백준 온라인저지 2470번 두 용액문제입니다.

     

    아이디어

    입력받은 용액 들을 정렬한 후 투포인터 알고리즘을 사용하여 0에 가장 가까운 알칼리성 용액과 산성 용액을 구했습니다.

     

    #include<iostream>
    #include<vector>
    #include<algorithm>
    using namespace std;
    
    vector<int> arr;
    int n;
    
    int abs(int a) {
    	return a >= 0 ? a : a * (-1);
    }
    void input() {
    	cin >> n;
    	while (n--) {
    		int num;
    		cin >> num;
    		arr.push_back(num);
    	}
    }
    
    void solution() {
    	//오름차순으로 정렬하여
    	sort(arr.begin(), arr.end());
    	int sum = 0;
    	int minIdx = 2000000001;
    	int sp=0, ep = arr.size()-1;
    	int p1, p2;
    	//투포인터 알고리즘 사용
    	while (sp < ep) {
    		if (abs(arr[sp] + arr[ep]) <= minIdx) {
    			p1 = arr[sp];
    			p2 = arr[ep];
    			minIdx = abs(arr[sp] + arr[ep]);
    		}
    		if (arr[sp] + arr[ep] < 0) {
    			sp++;
    			continue;
    		}
    		ep--;
    
    	}
    	cout << p1 << " "<< p2;
    }
    
    int main(void) {
    	input();
    	solution();
    }

    '알고리즘 > 백준' 카테고리의 다른 글

    BOJ 1436 영화감독 숌 / C++  (0) 2022.05.24
    BOJ 14500 테트로미노 / C++  (0) 2022.05.23
    BOJ 1644 소수의 연속합/ C++  (0) 2022.05.23
    BOJ 1311 할 일 정하기1 / C++  (0) 2022.05.23
    BOJ 17244 아맞다우산 / C++  (0) 2022.05.23

    댓글

    관련글

    • BOJ 1436 영화감독 숌 / C++ 2022.05.24
    • BOJ 14500 테트로미노 / C++ 2022.05.23
    • BOJ 1644 소수의 연속합/ C++ 2022.05.23
    • BOJ 1311 할 일 정하기1 / C++ 2022.05.23
    맨 위로
전체 글 보기
Tistory 로그인
Tistory 로그아웃
로그아웃 글쓰기 관리

Today

Total

Powered by ⓒ Kakao Corp.

Designed by Nana
블로그 이미지
내이름은 킹햄찌

티스토리툴바